分析結果の信頼性を上げるSQLレビューについて

こんにちは。データサイエンティスト兼、データ基盤エンジニアのshobyです。

皆さんは、分析結果の信頼性をどのように保証していますか?

近年では、データの重要性が増した結果、データサイエンティストの出した分析結果を元に、大きな意思決定もされるようになっており、 その分析結果にミスがあった場合は大きな問題になることもありえます。

では、その分析結果にミスがないことを、どのように確認したら良いでしょうか。

今回は、主にSQLを使った分析について、チームでレビューを行うことで、信頼性を向上させる取り組みを紹介します。

TVISION INSIGHTSでは、SQLのレビューを導入することで、 分析におけるヒューマンエラーを防ぎ、クライアントにより信頼の置けるデータを提供できるようになりました。

概要

  • アプリケーション用SQLと分析用SQLのレビュー
  • 分析用SQLのレビュー箇所
  • TVISION INSIGHTSでの事例

アプリケーション用SQLと分析用SQL

SQLには主にアプリケーションSQLと、分析用のSQLが存在し、 アプリケーション用SQLはきちんとレビューされることが多いですが、 分析用のSQLはレビューが行われることが稀です。

アプリケーション用のSQLとは、Webアプリケーションやbatchなど、定常的に実行されるSQLで、主にエンジニアにより書かれるSQLです。 アプリケーション用のSQLは通常のコードレビューのプロセスの一貫として、通常のコードと同様にレビューされることが多いです。

また、分析用のSQLとは、データ分析に使われるSQLで、主にデータサイエンティストにより書かれるSQLです。 こちらは分析要件毎に使い捨てであることが多く、レビューも行われれないことが多くあります。

今回は、分析用のSQLでも、アプリケーション用のSQLと同様に、コードレビューを行うという取り組みをご紹介します。

分析用SQLのレビュー箇所

分析用SQLのコードレビューでは主に、分析要件、コード、分析結果の3点をレビューします。

分析要件のレビュー

何をどうやって分析するかについてのレビューです。 これにより、分析対象や分析方法の誤りを防ぐことができます。

アプリケーション開発における設計レビューに近く、大きな分析案件の場合、実際の分析を始める前に行うのが望ましいです。

コードのレビュー

実際のSQLコードについてのレビューです。 これにより、分析要件に沿ったSQLが、正しく記述されていることを確認することができます。

アプリケーション開発におけるコードレビューと同等です。

分析結果のレビュー

最終的な分析結果のレビューです。 これにより、要件・コードレビューでは気づけなかった問題を発見することができます。

アプリケーション開発におけるQAに近く、最終的な結果の信頼性を高めるための作業です。

結果が「正しそうか」という判断はレビューを行う人の経験や知識に依存するため、 重要な分析に関しては、データサイエンティストだけでなく、ドメイン知識を持ったビジネス側の人にレビューを依頼するのも良い方法です。

TVISION INSIGHTSでの事例

TVISION INSIGHTSでは、SQLレビューを導入することにより、クライアントへ納品する分析データの信頼性を向上させることができるようになりました。 また、分析作業が孤独な作業ではなく、チームで行う作業に変わっていきました。

TVISION INSIGHTSではテレビの視聴質に関するデータをクライアントに提供しており、 データ抽出と分析はデータチームが、グラフ化や資料化はCS(カスタマーサクセス)チームが行なっています。

以前はCSチームに渡した後でデータに問題が見つかり、手戻りが発生するなどの問題が発生していましたが、 SQLレビューを導入することで、データに関する問題の発生頻度を減らすことができました。

また、以前は分析作業は個人で行い、分析結果の責任は個人が負うという精神的に負荷の高い状態でしたが、 SQLレビューを導入することで、分析結果はチームで責任を負っていくという体制に変えることができました。

まとめ

アプリケーション用のSQLと異なり、分析用のSQLはレビューが行われることが稀です。

分析用SQLに関しては、分析要件・コード・分析結果のレビューを行うことにより、 分析結果の信頼性を向上させることができます。

TVISION INSIGHSでは、SQLレビューを行うことで、クライアントへ納品するデータの信頼性を上げ、 分析作業を個人作業からチームで行う作業に変えていくことができました。