非エンジニアでもGoogle Cloud Platformを活用してデータが見たい―弊社データサービスのケース

このエントリーをはてなブックマークに追加

AI技術の発展とともに、企業内のあらゆるデータを蓄積・活用するニーズはますます高まっています。 DWHなどを導入、非エンジニアでもデータ分析を行えるような環境を準備されている企業も多いかと思います。 しかし、

  • 「アナリストチームを組織したのに社内のデータ抽出依頼でほとんど工数を持っていかれる」
  • 「担当者が個別にExcelで分析してしまって知見や分析フローが属人化する上に保守もされない」

といった問題が起き、なかなかデータ活用が進んでいない方も多いのではないでしょうか。
本稿では、弊社「データサービス」の提供・活用を題材に、非エンジニアを含む幅広い人員がデータを見られる環境をどう整備すればいいか記載します。 Google Cloud Platformを利用すれば、意外と簡単に実現することができます。これからデータ活用環境を作るぞ!というときのご参考にしていただければ幸いです。

背景:データサービスの提供

みなさんこんにちは。データデザイン部金岡です。

弊社では、公的機関のデータを加工し、マーケティング業務やAI開発に資するデータとして販売する「データサービス」というメニューを昨年よりご提供しております。 データは整形済みのCSVファイル形式でお届けするわけですが、蓄積やお客様への伝送、社内での活用にGoogle Cloud Platformをフル活用しています。 今回はこれらの知見をご紹介します。

全体像

データサービスの提供は以下のようにして行われています。

  1. 公的機関のデータをスクリプトで加工、Google Cloud Storageに配置
  2. Google Cloud StorageからGoogle BigQueryに読み込み、各人がBIや機械学習、お客様提供用に自由利用

これらは非常にシンプルな原則に従った流れです。

  • 元データをGCSに配置、基本的に作成後いじらないようにする(読み込み権限だけを付与)
  • 活用はGoogle BigQueryで実施することで各活用者が一定程度自由に使う

以下では、運用のために工夫していることをご紹介します。

1. 公的機関のデータをスクリプトで加工、Google Cloud Storageに配置

データサービス利用 全体像

このフェーズでは分析の元となるデータの生成・配置を実施します。 ご提示したプロセスで最も時間がかかり、あとのフェーズに大きな影響があるため最も重要なポイントになります。 データを蓄積するにあたり実施しなければいけないポイントは、大きく二点あります。

1.1 データの設計、テーブル定義書の作成

公的機関のデータを整形、生成するコードを作る前に、例外なくテーブル定義書に落とし込みます。 これをすることで生成したデータすべてに共通の規格を持たせ、あとのフローでの加工や実際の分析を楽にすることができます。 公的なデータを前処理し、きれいなデータにする作業そのものはこちらの記事が詳しいです。 とても大変ですが、設計をきちんとしていれば、ある種ゴールに向かって開発を進めることができます。

注意すべき点は、設計の段階で活用者(今回のケースではチーム内唯一の文系である自分)を巻き込み、実際の活用用途やどのような分析を実施するか想定した上で設計することです。 活用のための中間テーブルはあとのフェーズで作りますが、中間テーブルを楽にできるようにするためにはここでの設計が肝となります。 実際にどのようなテーブル設計が良いのかは別の記事に譲ることとしますが、弊社では設計の段階で「カラム名の整備」「型の定義」「主キーの決定」などを実施しています。

1.2 命名規則の徹底

弊社の場合、Cloud Storageに配置されるデータは商品として販売する際のマスターデータとなります(一部加工途中の中間生成物もCloud Storageに配置しますが、マスター用のフォルダを切り出しています)。

そのため命名規則ルールを事前に定義し、開発の際も遵守することにしています。 テーブル定義と同様、マスターとなるファイル名が管理されていないと途端に「あれ、このデータいつ作ったやつだろう?」といった命名のファイルが増えることでしょう。 忙しいと、ファイル命名は適当になりがちです(ルールがなければ仕方のないことだと思います)。マスターにあたるデータは、このような小さな個人プレーでいつの間にか使い物にならなくなってしまいます。命名規則の遵守は非常に重要です。

命名規則についてはこちらの記事もご覧ください。

弊部はこのデータ生成・蓄積のタイミングであるこのフェーズを一番厳しくガバナンスしています。 あとのフェーズは少しルールを緩くしています。次の章で続けてご紹介します。

2. 各人でGoogle Cloud StorageからGoogle BigQueryに読み込み、活用

Google Cloud Storageにデータを配置できたら、各人でBigQueryに読み込み、お客様提供用に指定期間を切り出したり、機械学習やBIで活用していきます。

実はBigQuery内のテーブルは日々の活用をスピーディにするため、あまり細かくルールを決めていません。 以下のルールのみ運用しています。

  1. 元データのあるGoogle Cloud Storageと別のプロジェクト配下にあるBigQueryを利用(元データのあるGoogle Cloud Storageを触れるのは一つのアカウントだけにし、各人のユーザーアカウントからは触れないようにしています)
  2. 各人の名前をデータセットに、その中にテーブルを作る
  3. GCSの元データをダウンロードせず、データ抽出には必ずGoogle BigQueryを経由する

元データの作成や更新、削除の権限は活用する人に与えないという点を徹底しています。

最初のフェーズで実施したテーブル定義通りのCSVが入っていれば、BigQueryに読み込む際に自動で命名規則・型のままテーブルを作成することができます。

また、Google BigQueryを経由し、再利用したいときにはSQLの実行ログを参照します。 CSVファイルをローカルを落とし、加工を各人のローカルでExcelで実施してしまうとこうはいきません。

活用時のルールは緩めに、ただし元データは読み込みのみにして、クエリは再利用できるようにする、というシンプルなポリシーです。

余談:データの民主化のためには

以上が弊部でデータサービスを提供・自社活用する際のフローとなります。 すべての会社に一律で当てはめられないとは思いますが、様々なシステムからデータを引いてきてDWHに格納、活用する際の考え方は基本的に一緒です。 肝は最初の設計とほどよいガバナンスだと考えています。

よりスケーラブルなDWHの運用については弊部の福本の記事が詳しいです(なお、福本にはデータサービスのプロジェクトにもスクラムマスターとして参加してもらっています)。

では、ご説明したようなアーキテクチャで各人がBigQueryを触れるようになったとします。 データの民主化=各人がビジネスの判断にデータを活用できるようにするためには、どうすればいいのでしょうか。

答えは一つではないと思いますが、筆者は「データとはどういうものか理解する」ことが一番重要と考えています。 データを正しく扱うことなく、統計的因果推論も可視化も機械学習も成り立ちません。

具体的には何をすればいいのかというと、職務に関係なく

  • SQLのSELECT文くらい覚えておく
  • テーブル定義を見たときなんとなくリレーショナルな構造を理解できる

これぐらいのリテラシーを揃えておくことが重要と思います。 個人的には、統計や機械学習の勉強の前に実務ではSQL・データ(データベース)の理解を先行させた方がその後の業務適用の効率がいいと考えます。

データを理解し、GCSからBigQueryで読み込みさえできれば、実際のテーブル操作はGoogle Data PortalやTableau PrepにあるGUIでのデータ前処理機能で十分かと思われます。 もちろんコードが書ければRやPythonで高度な処理ができます。

弊部では、文系プロダクトオーナーの私、AI案件を実施するディレクター陣もこれぐらいの知識はおさえるべく日々研鑽しています。(いつもスロークエリ投げてごめんなさい)。

まとめ

本稿では弊社で提供するデータサービスを題材に、GCPを活用して誰でもデータ活用ができる環境を整えるにはどうしたらいいか考察しました。 あらゆる組織で、最低限のデータ管理が浸透し、データ活用が民主化されることを願ってやみません。

【無料ウェビナーのお知らせ】
「DX/AI推進を担当しているがうまく進まない」方に最適なウェビナーを企画しました

事業会社がAIを導入するには、現場から経営層までが一体となり、熱量をもってAI開発に携わることが重要です。そしてその成功の鍵となる考え方が「UX first」です。
本ウェビナーでは、これまで弊社が事業会社とAIプロジェクトを進めて感じた気付きから、「UX first」で進める必要性についてお伝えします。

<ウェビナータイトル>
経営層も熱狂させるAI活用~成功の鍵は「UX First」~
<プログラム>
1.データデザイン事業のご紹介
2.AI活用が進まない理由とは
3.AI活用における「UX First」な進め方とは
4.なぜ「UX First」だとうまくいくのか?事例のご紹介
5.QAタイム

日時:2020年12月10日(木) 13:15~14:15
参加方法:Zoomで参加(参加費無料)

お申し込みはこちら

WRITER
Ryo Kaneoka

プランナー

金岡   亮 Ryo Kaneoka

複数の新規AI・データ活用サービスの企画およびPMを担当する。大手広告代理店様/メーカー様のビッグデータ活用の支援等の実績あり。   JDLA Deep Learning for GENERAL 2018、上級ウェブ解析士

SNSで最新情報を発信しています

最新記事

ページTOPへ