NTUC が統合データポータルを作成し、各部門からのスムーズなデータアクセスを実現
Google Cloud Japan Team
※この投稿は米国時間 2022 年 12 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。
NTUC Enterprise は社会における差し迫ったニーズに応えることを理念として掲げるソーシャル ビジネス ネットワークであり、医療、育児、生活必需品、調理済み食品、金融サービスなど、さまざまな部門があります。年間 200 万人以上のお客様にサービスを提供しており、シンガポールのすべての人がより良い有意義な生活を送れるようにすることを目指しています。
当社の事業部門は多岐にわたり、部門ごとに異なるコンピューティング アーキテクチャを採用しています。そのため、当社のエコシステム全体のデータ統合が難しく、社内の関係者がデータにアクセスしにくいという問題がありました。当社全体のデジタル変革を通じ、スタッフのコラボレーション促進を目指していた私たちにとって、データに関する問題は最重要課題です。さらに、お客様ごとにカスタマイズしたソリューションを提供しやすい仕組みにすることも求められていました。
主な問題は、当社の主要事業である小売、医療、食品、サプライ チェーン、金融サービスの 5 つが Google Cloud、オンプレミス、Amazon Web Services(AWS)のインフラストラクチャをそれぞれ独自に組み合わせて利用していることでした。この複雑な環境に対応するため、エコシステム全体のデータを一か所にまとめ、統合データポータルを作成することにしました。その狙いは、各部門が相互プラットフォーム対応のデータ ソリューションや分析システムを作成できるようにし、NTUC の 1400 人以上のデータ利用者に対してデータアクセスを民主化することです。つまり、25,000 件以上の BigQuery テーブルおよび 10,000 件以上の Looker Studio ダッシュボードから、社内関係者が必要なアセットに簡単にアクセスできるワンストップ プラットフォームを作成することを目指したのです。
以下に、NTUC がオープンソースのメタデータ プラットフォーム DataHub および Google Cloud ソリューションをデプロイし、データの安全な取り込みや安定したデータ品質を実現しながら、各部門の社員がシームレスにアクセスできるような統合データポータルを確立した手順を示します。
DataHub に組み込まれているデータ検出機能は、BigQuery テーブルおよび Looker Studio ダッシュボードのデータアセット検索から DataHub への格納まで、基本的な機能を提供してくれます。しかし、当社では、全データアセットのメタデータを自動的かつ体系的に取り込めるようなシームレスな方法を必要としていました。
上記の理由から、Apache Airflow 上に構築されたフルマネージド型のワークフロー オーケストレーション サービスである Cloud Composer、ニーズの動的な変化に応じて簡単かつ効率的にスケールアウトできるよう支援する Google Kubernetes Engine(GKE)の Autopilot でカスタマイズおよび機能強化を行いました。
次に、技術スタックを通じてエンドツーエンドのデータフローを実現するデータリネージを構築しました。具体的には、Cloud SQL から Cloud Storage にデータを取り込み、続けて BigQuery 経由で Looker Studio ダッシュボードにデータを送り返し、見やすい形式にしました。これにより、NTUC 各部門のスタッフが Looker Studio 上で安全かつ直感的にデータにアクセスできるようになりました。
基本的なプラットフォーム アーキテクチャの設定が完了したら、次のタスクはデータを安全に取り込むことでした。機密性の高いデータは、暗号化して Cloud Storage に格納してから BigQuery テーブルに取り込む必要があります。また、Google Cloud、AWS、オンプレミス インフラストラクチャなどを含むマルチクラウド環境で、データを安全に取り込める、柔軟性の高いシステムである必要がありました。
こうした条件に加え、Python および YML、GKE、Cloud Composer の要件を満たせるよう、社内でフレームワークを構築することにしました。このフレームワークは、Collibra のデータ管理プラットフォームと同等であり、NTUC のデータフロー(Cloud Storage から BigQuery まで)に適合します。さらに、以下に示す NTUC のデータ原則も満たす必要があります。
Cloud Storage データレイク内の全データは、データ セキュリティ サービスの Avro などの圧縮形式で格納する
機密性の高い列は、SHA-256(Secure Hash Algorithm 256-bit)を使ってハッシュ化する
必要に応じてカスタマイズできる柔軟性の高いソリューションにする
接続に対してユーザー名とパスワードを要求する
接続に対して証明書(公開鍵および秘密鍵)を要求する(コードでのオーバーライド機能に対応する)
接続に際し、数百の物理テーブル(MSSQL のテーブル シャーディング)から 1 つの論理テーブルを要求する
次の課題は、データポータルにおいてデータ品質検証サービスを自動化し、BigQuery テーブルが更新、変更されたときは必ずリアルタイムでデータをチェックできるようにすることでした。それまでは、データ エンジニアが膨大な数のテーブル列に変更点や異常がないかどうかを手動でチェックしながら、BigQuery テーブルを構築していました。こうした作業には丸一日かかることもありましたが、5 分程度で済むようになり、データ エンジニアの負担を大幅に減らすことができました。具体的には、以下の方法によってシームレスなデータ品質を実現しています。
BigQuery テーブル上のアクティビティは、リアルタイムのフルマネージド型ログ管理サービスである Cloud Logging に自動的に書き込まれます。このサービスはストレージが付属しているほか、検索、分析、アラートにも対応しています
続けて、このロギング サービスによって BigQuery のイベントを Pub/Sub にフィルタリングし、そこからデータストリームとして Looker Studio に送信し、ユーザーが必要なデータに簡単にアクセスできるようにします
さらに、BigQuery テーブルの列データの削除、変更、追加など、誰かが誤って、または設定済みのルールに反して BigQuery テーブルを更新した場合は、データ品質検証サービスからユーザーに通知が送信されます。そのため、エンジニアが BigQuery のテーブルを検索しなくても、自動的にデータが検出されます
NTUC では、こうしたステップを通じて、柔軟かつ動的で、ユーザー フレンドリーなデータポータルを構築し、各部門の 1,400 人以上のプラットフォーム ユーザーに対してデータアクセスを民主化しました。これにより、クリエイティブなコラボレーション作業や、デジタル ソリューションの開発への可能性が大きく開かれました。今後は、データポータルに他のデータサービスも統合する方法を検討するとともに、Google Cloud を活用して新たな社内ソリューションの開発に取り組んでいく予定です。
- NTUC、プリンシパル データ エンジニア Minh Nhat Nguyen 氏