システム運用担当者の必修科目!?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. ITILの中心的プロセス、構成管理って?ITILの基本(2)

    ITILの中心的プロセス、構成管理って?ITILの基本(2)

    ITILに関する前回のエントリーでは、サービス運用や管理の事例集としての概要に触れました。今回は、I…
  2. InteropのZabbixブース

    Interop Tokyo 2019へのご来場、ありがとうございました

    InteropのZabbixブースに出展しました 6月12日(水)から14日(金)まで、Inter…
  3. Zabbixなど監視サービスからのアラートは、メールかAPIで読み込んで自動処理するのが楽。運用エンジニアは、Excelに転記なんてしてる余裕はないはず!

    監視サービスからのアラートメールは、取り込んで自動処理しよう!

    近年では、システム運用を効率化できる、クラウド型(SaaS型)の運用管理サービスが人気です。わざわざ…
  4. SREって大規模な組織の話?開発と運用をチームにするメリットとは?

    システム運用に関する話題の中でもたびたび目にする機会が増えてきた「SRE」。これは、「サイトリライア…
  5. 電話の使い方もひと工夫!チャットと併用のいいとこ取り

    リモートワークで重要なコミュニケーションツールとなるのが、電話です。業界や業種にもよりますが、従来は…
ページ上部へ戻る