システム運用担当者の必修科目!?SQLの技術を磨こう
新型コロナウイルスによって、仕事への影響があってもなくても、システム運用エンジニアにとって、必要な基本スキルは変わりません。そんな、避けて通れない技術の一つが、SQLです。DBに格納されたデータは、システムにおける情報そのものですが、データを格納したり抽出するには、基本的にSQLを介す必要があります。誤解を恐れずにいえば、システム運用とは、DB上のデータのメンテナンスに尽きます。
SQLとは
SQLとは、Structured Query Languageの略で、DBに対して構造の定義やデータの抽出、格納を処理するための言語です。DBごとの「方言」はあるものの、ANSI(米国規格協会)やISO(国際標準化機構)により、標準的なSQLの規格が定められていて、基本が押さえられていればどんなDBやシステムにも応用できます。
なぜSQLがシステム運用の現場からなくならないか
昨今のシステムの多くが、データ格納領域としてRDBMS(Relational DataBase Management System)を利用しています。効率的にデータが格納でき、データへのアクセスも速く、項目を詳細に設定できる利点があるためです。継続的にデータを持つ必要のないシステムや、XMLDBなどのNoSQLというDBが用いられるシステムもありますが、RDBMSに取って変わるほど普及するとは考えられていません。
つまり、ほとんどのシステム運用では、そのデータの参照や更新にSQLを使わざるを得ないわけです。スプレッドシートのようにRDBMSのデータにアクセスするツールも存在しますが、内部的にはSQLを発行しています。システム運用者はツールでアクセスするにしても、より詳細な条件を指定するには、SQLのスキルはやはり必要です。
SQLの種別
SQLには、大きく分けてDDLとDMLの2つがあります。
DDL(Data Definition Language)とは、主にDB上に作成するテーブルやインデックス(索引)など、オブジェクトの構造を定義するために使用します。CREATE文やALTER文などがこれにあたります。
DML(Data Manipulation Language)とは、文字通りDBからデータを抽出したり、データを格納・更新・削除したりとデータを操作するために使用します。SELECT、INSERT、UPDATE、DELETE文などがあります。
システム運用の現場においてはどちらも使用しますが、まずは基本となるDMLのSELECT文を上手に操れるようになると応用が利きます。
<PR>NoSQLといわれても結局SQLは必須。現場で経験を積むうちに身につけていくべきスキルです。
時間と心にゆとりを作るなら、システム運用サービス「UOM」で自動化できます!詳しくはこちらへ
いろいろあるSQLの利用シーン
システム運用で、SQLを活用できるシーンは少なくありません。いくつか利用例をあげてみます。
・業務部門から、今月の売上合計額のデータを依頼された
定型業務外で、業務部門から『データを出して欲しい』といわれることがあります。しかし、このデータ出力を、画面出力やファイルアウトプットで実現しようとすると、納期や予算がネックになることも。
そんな時に、SQLでSELECT文に条件を上手に指定すれば、データを抽出できます。例えば『売上実績テーブル内の売上日が今月で、かつXX部門のデータ』といった具合です。このSQLを保存しておけば、同じような依頼があった場合も、微調整だけで再利用できます。
・アプリケーション改修リリース当日にバグ発生!不正データがDBに格納されてしまった
バグが発生し、不正データが作成されてしまった場合、バグの特定と改修は当然ですが、不正データも残してはおけません。こういった事態にもSQLは有用です。
まずは、SQLでDBを探し、不正データを特定します。例えば『リリース時間以降に、バグが発生した機能で登録されたデータ』といった形でSELECT文を作成し、データを絞り込みます。作業対象や、対応に必要な目安の時間なども把握しやすくなります。
また、SELECT文からUPDATE文を作成して、不正データを問題のないデータに修正することも可能です。
・毎日、終業前の定例業務で、未完了のデータをチェックしている
毎日の定型業務なら、システムの機能として実装すべきですが、業務の変更や予算の関係で難しいこともあります。未完了のデータをチェックする場合も、例えば、下記のような方法で、システム担当者は面倒な作業から解放されます。
- 「当日に実施予定で未完了」という状態のデータを抽出するSELECT文を作る。
- バッチ起動で1を実行できるようにし、結果をファイル出力にする。
- 1と2の実行を、毎日終業前にスケジューラに登録する。
- 現場担当者は、毎日終業前に3のファイルをチェックする。
- 現場の条件に合わせて、リモートで処理できないか検討する。
システム運用のスキルを活かすのは、自動化・効率化とセット
さまざまな事態が発生するシステム運用の現場では、SQLが使えればタイムロスが少なく対応できます。Web上に無料のSQLの実行環境があったり、各DBも無償版を提供するなど、自習できる条件も揃っています。ワークスタイルが大きく変わった今、エンジニアとして次のステップへ進むためにも、SQLのスキルを身に着けましょう。
また、個別のスキルと同時に、それをどのように業務に活かすかを考える力も大切です。人が介在するということは、スキルレベルに応じてシステム運用のクオリティーが変わってしまうリスクも孕んでいます。システム運用を効率化して人の手間を減らせば、属人化することも減り、スキル学習に必要なゆとりが生まれます。それは、結果として、ストレスの無いシステム運用につながります。
<PR>DBの安定した維持管理が重要なのは当然でも、時間や手間は掛けたくないのが忙しい現場エンジニアの本音。
SaaS型の統合運用管理サービス「UOM」なら、システム運用を効率化できるんです!詳しくはこちらへ