こんにちは。データエンジニアをしている奥野です。
FLINTERSでは2024年1月に10周年を迎えることを記念して、全社員でブログリレー企画を行なっております。
こちらのブログは76日目の投稿になります。
はじめに
データエンジニアにとって、データの品質を向上させることは永遠の課題ですよね。
正確性・完全性・一意性等様々な評価基準がありますが、今回は私たちのデータ基盤で行なっているデータの品質チェックについて幾つかご紹介します。
どのような品質チェックを実施しているか
数値項目の正確性チェック
私たちの管理しているデータ基盤では、毎日APIから取得した最新のデータを格納しています。
データ格納時の考慮漏れやAPI側の不具合により正確なデータが格納できていないことを検知するために、管理画面をスクレイピングした結果と比較し閾値を外れた場合にはslackで通知、調査を行います。
特定粒度での欠損チェック
当日格納分のデータは格納されているが特定粒度で見たときに一部欠損してしまっている、といったことを検知できるように独自のロジックを組んで欠損チェックを行なっています。
格納されるべきデータが格納されていない場合は、元データの再取得を依頼します。
重複チェック
ユニークキーを元にデータに重複がないかをチェックします。
重複が検知された場合は重複データの削除、もしくは元データに異常がある場合は調査を行います。
SLAの設定
◯時までにデータが格納されていること、といったSLA(Service Level Agreement)をテーブル毎に設定しています。 格納が遅れている場合はslackで通知するのと、達成状況をログとして格納することで可視化もしています。 状況をモニタリングし、SLA達成率が良くないテーブルについては格納フローの改善を行い品質向上を目指します。
最後に
データの品質向上を目指すためにはチェックを行うだけでなく状況のモニタリング、そして改善といった取り組みを継続して行う必要があると考えています。
エンジニアサイドだけではなく利用者側の声も取り入れ、引き続きデータ品質の向上に取り組んでいきたいと思います。