システム運用担当者の必修科目!?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文を作成して、不正データを問題のないデータに修正することも可能です。

・毎日、終業前の定例業務で、未完了のデータをチェックしている

毎日の定型業務なら、システムの機能として実装すべきですが、業務の変更や予算の関係で難しいこともあります。未完了のデータをチェックする場合も、例えば、下記のような方法で、システム担当者は面倒な作業から解放されます。

  1. 「当日に実施予定で未完了」という状態のデータを抽出するSELECT文を作る。
  2. バッチ起動で1を実行できるようにし、結果をファイル出力にする。
  3. 1と2の実行を、毎日終業前にスケジューラに登録する。
  4. 現場担当者は、毎日終業前に3のファイルをチェックする。
  5. 現場の条件に合わせて、リモートで処理できないか検討する。

システム運用のスキルを活かすのは、自動化・効率化とセット

さまざまな事態が発生するシステム運用の現場では、SQLが使えればタイムロスが少なく対応できます。Web上に無料のSQLの実行環境があったり、各DBも無償版を提供するなど、自習できる条件も揃っています。ワークスタイルが大きく変わった今、エンジニアとして次のステップへ進むためにも、SQLのスキルを身に着けましょう。

また、個別のスキルと同時に、それをどのように業務に活かすかを考える力も大切です。人が介在するということは、スキルレベルに応じてシステム運用のクオリティーが変わってしまうリスクも孕んでいます。システム運用を効率化して人の手間を減らせば、属人化することも減り、スキル学習に必要なゆとりが生まれます。それは、結果として、ストレスの無いシステム運用につながります。

<PR>DBの安定した維持管理が重要なのは当然でも、時間や手間は掛けたくないのが忙しい現場エンジニアの本音。
SaaS型の統合運用管理サービス「UOM」なら、システム運用を効率化できるんです!詳しくはこちら

関連記事

∞∞∞∞∞∞∞ おすすめ記事 ∞∞∞∞∞∞

  1. 【Special】監視を入口にした新たな付加価値の提供 ― Zabbix Japan LLC 寺島さま インタビュー(3)

    Zabbixは、システム監視の強力かつ柔軟なソリューションであることは間違いありません。しかし、監視…
  2. システム運用こそが組織存続の生命線!コロナ禍の運用を考える

    この一年は、システム運用エンジニアの皆さんも、前例のない対応に追われ続けた日々だったことでしょう。1…
  3. 覚えてしまえばすごく楽!Markdown記法を使ってみよう

    覚えてしまえばすごく楽!Markdown記法を使ってみよう

    Markdown(マークダウン)記法、使ってますか?「README.md」として見掛けたことがあるか…
  4. 自分がチームリーダーなんて!苦手な役割はどうすればいい?

    この「運用ナビ」の記事を読んでいる若手エンジニアの中には、4月に初めてチームリーダーになったり、マネ…
  5. Microsoft Power AppsとPower Automateで業務を効率化しよう

    業務を効率化するためのMicrosoftの製品に、Microsoft Power Apps(以下…
ページ上部へ戻る