近年のビジネスは取り扱うデータ量が急激に増加しています。

量の変化だけでなく、顔認証に利用される画像データや音声データ、メタデータなど、データは質の面でも変化が生じています。

このデータの量・質の変化を背景に、「データの何を管理すればよいのか」「どうしたらより円滑にデータを活用できるか」を考える「データマネジメント」が課題です。

データマネジメントは広範にわたり、11の領域に分かれています。そのうちのひとつ「データ品質」を高める取り組みが「データチェック」です。

データチェックの導入により、単なる入力ミスから人のチェックでは気づきにくいミクロなエラーまで発見し、誤りのない正確なデータを運用できるようになります。

ユーザーが安心してデータを利用できるよう、データチェックの基本を理解して自社のデータマネジメントに活用しましょう。

データチェックとは?

データチェックとは、その名のとおり扱うデータをチェックすることです。

システム開発ではユーザーの入力をチェックし、不適切な入力に対して再入力を促す(フリガナやメアドの入力など)システムもデータチェックと呼びますが、今回はデータベースを検索して不適切なデータを検知する仕組みと考えてください。

データの主な用途のひとつのデータ分析を例にします。

データは取得されてから分析用に加工され、専用のツールで分析にかけられます。しかしこのデータパイプラインは、各所にデータへエラーが混入するリスクがあります。

  • データの入力ミス
  • データの抽出ミス
    • 宮城県と間違えて宮崎県のデータを抽出するなど
  • データの加工ミス
    • 桁数を揃えるために100倍すべき値を10倍してしまうなど

これらのミスをひとつずつ弾き、正確なデータ活用をサポートするのがデータチェックの目的です。

たとえば、先のデータ分析では、誤ったデータを分析してしまった結果、それに基づく判断も誤ってしまいます。データチェックの導入により、そのようなケースを防止できます。

また、データチェックにより分析元のデータの正確さが保証できると、分析結果への信頼性も向上します。

データチェックは単なるミス防止の仕組みではなく、データの活用結果への信頼性も高める効果があります。

データチェックの種類7つ

データチェックは、チェックしたいターゲットによって7つの種類に分かれています。

  • リミットチェック
  • フォーマットチェック
  • シーケンスチェック
  • ニューメリックチェック
  • レンジチェック
  • 論理チェック
  • バランスチェック

データチェックを導入する際は、エラーを防ぎたいターゲットに合わせて取り入れるデータチェックの種類を使い分けるのが重要です。データの性質やオペレーション上の仕様を踏まえ、仕様上ありえないデータを弾くように設定します。

たとえば複数人のチームでデータの正確性を監視するのであれば、「組み込まれたデータチェックがどういう趣旨で」、「何のデータを弾くためのものなのか」も管理する必要があります。

なんのためのチェックなのかわからないと、エラーが通知されてもその原因の特定ができません。また設定した人が担当を離れると、ほかの人が設定を変更できなくなってしまう恐れがあります。

リミットチェック

リミットチェックとは、データの範囲をチェックするタイプのデータチェックです。

入力される数値の上限、または下限を設定しておくことで、通常ではありえない数値の入力を検知できます。

もっとも代表的な例は、誕生日の入力など日付の入力です。

“月”の数値は1~12、”日”は1~31の値までしかとらないため、それ以上の数値を入力された場合はリミットチェックによって存在しない日付の入力に気づけます。

年齢や商品・サービスの値段など、その性質上値が非負(0以上)に限定される数値に対しても有効なデータチェックになります。

フォーマットチェック

フォーマットチェックとは、データの形式をチェックするタイプのデータチェックです。

文字列の半角/全角のようなデータの表記揺れを検知するのが基本で、とくにデータが事前に定めた形式に則っているかを検知するために使われます。

たとえば日付のデータにはバリエーションがあります。

  • 2022/12/24 00:00:00
    • 時間まで打刻されている形式
  • ’22/12/24
    • “20”が省略されている形式
  • 2022年12月24日
    • 文字が混ざっている形式
  • 2022-12-24
    • ハイフンを使用している形式

集計の際にこれらの形式が統一されていないと、同日のデータとして処理できません。

シーケンスチェック

シーケンスチェックとは、データの順番をチェックするタイプのデータチェックです。

データ分析では、元のデータがランダムに並んでいると分析に使用しづらいため、分析用のデータを時系列に並び替えておくケースがあります。

ほかにも、広告データであればクリック数やインプレッション数の多い順など、さまざまなデータを並び替える場面があります。

シーケンスチェックは、上記の例のようにチェックしたいデータが事前に定めたルール通りの並び替えになっているかをチェックする仕組みです。

またレアケースですが、レコードごとにデータの入力順が乱れるシステムでは縦(列)の並び替えに対するチェックのほか、横(行)でのデータチェックを取り入れることもあるので、データに携わる方は覚えておくと良いでしょう。

ニューメトリックチェック

ニューメトリックチェックとは、入力されたデータが数値か否かをチェックするタイプのデータチェックです。

事前に定めた形式と合致しているかをチェックする点で、フォーマットチェックの一種ともいえます。数値の列に対して数値以外のデータが混入するのを防ぎ、データの集計でエラーが発生しないようにする効果があります。

ニューメリックチェックが必要になるデータのエラーとして年齢に「じゅうなな」など文字列が入力されてしまうケースがあります。

ほかに日本語特有のエラーとして「0(文字扱いの全角数字)」と「0(半角数字)」を見分けるためにも使用されます。

レンジチェック

レンジチェックとは、データが設定した範囲内にあることをチェックするタイプのデータチェックです。

上限と下限を定めたリミットチェックともいえますが、リミットチェックのようにエラーを弾く目的だけではなく、データのカテゴリー分けをする際にも使用されます。

成年/未成年別で売上分析をする際、0~19歳までと20~歳のデータをそれぞれ集計して比較するより、20歳未満・20歳以上の2分類で集計するほうがラクに集計できます。

年齢が0~19のデータなら年齢を0に、20~なら年齢を1に変換するなどの操作に用いられるのがレンジチェックです。

数値を複数カテゴリーに変換する際は、リミットチェックではなくレンジチェックを使用しましょう。

論理チェック

論理チェックとは、データを入力するシステムの仕様や、データの仕様上入力がありえないデータをどのようにチェックするかの視点を指すワードです。

データの範囲や形式など、具体的なデータの弾き方のパターンではありません。データチェックを実装する際は、仕様上どのようなデータがありえないかを考える論理チェックを実行します。

論理チェックの結果に基づき、リミットチェックやシーケンスチェックなど、それぞれの課題・目的に適したデータチェックを実装しましょう。

バランスチェック

バランスチェックとは、ひとつのデータを異なる視点でとらえるデータを並べ、お互いのデータの内容に齟齬がないかをチェックするタイプのデータチェックです。経理分野の貸借対照表などの場面で使われます。

元々はシステム開発、データエンジニアリング特有の考えではなく、紙データの時代から広く実施されてきたものです。

従来は「月次データの突き合わせ」のようなケースで使われました。また人の手や目では追いきれないデータの入力も、ひとつずつミスがないことを確認するには未だにバランスチェックが有効です。

とくに一つの顧客・製品のデータを複数の部署・部門で管理するケースで、バランスチェックが使われます。データの整合性を保証できるからです。

データチェックの精度を高めるには?

データチェックの使い方が現場のなんとなくの判断に委ねられているケースは珍しくありません。

データチェックは事前のルール決めが大切です。

本章ではデータチェックの精度を高めるためのルール決めで意識しておきたいポイントを紹介します。

どのデータをチェックしたいのか明確にする

  • どの形式・値がデータとしてありえないのか
  • どのデータをエラーとして処理したいのか
  • どのデータをアラート通知させて把握したいのか

データの正確性を高めるには、以上のポイントを明確にしたうえでデータチェックを実装する必要があります。

仕様上ありえないデータを弾くのは当然ですが、とくに検討しておきたいのがそのデータの使われ方を踏まえたデータチェックです。

たとえばデータを分析に利用するのであれば、データの収集段階で形式のルールを定め、ルールにそぐわないデータはエラーとしてチェックします。

複数の製品の売上データを統合して分析できるよう、日付の形式を「YYYY-MM-DD」に統一しておき、「YYYY/MM/DD」などの形式をエラーとして「YYYY-MM-DD」に改めさせるなどです。

その結果、円滑なデータ活用につなげられて、データ分析の結果から施策の効果予測、すでに実施した施策効果の振り返りなど、ビジネス的に価値のある業務にフォーカスできます。

複数人体制でチェックする

システム的なデータチェックであれば、データの各処理の段階で同様のデータチェックを実装すればさらにデータの正確性を高められます。

またアナログな人の手でのデータチェックであっても、複数人でのチェックによりデータの正確性の向上が期待できるでしょう。

「カタカナでのふりがな入力を指示しているが、ひらがなで入力するユーザーがいるかもしれない」など、エラーの想定がデータチェックの基本ですが、データをチェックする側のエラーも想定した運用が有効です。

データチェックの活用範囲

エラーのデータを検知し、データの正確性を向上させるのがデータチェック本来の目的です。ただし現在ではデータチェックの仕組みを活用して、データベースの保守運用にも活用されてます。

たとえば、広告のデータなどが毎日追加されるケースで「今日、データが正常に転送されたか」を検知する際に、データチェックの考えが活用されています。

「昨日の終わりのデータ件数」と「今日の終わりのデータ件数」を比較し、その差が0であればエラーとして通知するイメージです。

個別のデータにくわえ、データの流れ全体のエラーも検知できる点が、データチェックの魅力です。データの正確性を向上させるという本来の目的以外にも、活用範囲は徐々に広がりつつあります。

まとめ

本記事では、データの正確性を向上させるデータチェックの概要や仕組み、種類を解説しました。

データチェックは、データの運用基盤全体の流れに対するエラー検知にも活用できる仕組みです。

各データそのもののエラーに対するチェック、データの流れが正常かを検知するチェックと2段構えでデータチェックを実装することで、データの運用保守も効率的に進められます。

データマネジメントに課題を感じている方はぜひデータチェックの体制を導入してみてはいかがでしょうか。

弊社のデータ分析基盤構築サービスtrocco®は、Google BigQuery上のデータに対するデータチェック機能を提供しています。

データチェック本来のエラー検知だけでなく、SQLの利用によりデータの正常な転送を監視する仕組みを実装できます。

trocco®のワークフロー機能と組み合わせることで、データの転送と検証を自動化し、大規模なデータ分析基盤のマネジメントに有効な機能です。

trocco®では、クレジットカード不要のフリープランをご案内しています。ご興味がある方はぜひこの機会に一度お試しください。

hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社。データエンジニアとして同社分析基盤立ち上げをリードする。2017年より現職primeNumberに入社。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。