データイネーブルメント
GitLab のデータイネーブルメントは、チームメンバーがデータにアクセス、分析、活用するための複数の方法を提供します。このページでは、データ資産を探索・活用するための各種ツールとプラットフォームを説明します。
データパラダイム
私たちの基本原則はデータをできる限りデータプラットフォームに留めることです。データプラットフォームは、堅牢なセキュリティコントロール、監査証跡、ロールベースの権限を備えた適切に管理されたアクセスモデルを提供します。データが Snowflake やデータプラットフォームの外部にエクスポートまたは公開される場合、以下のような重大なリスクが生じます:
- ガバナンスとアクセスコントロールの喪失
- データの使用とアクセスの監査不能
- セキュリティとコンプライアンスのリスク増大
- データの重複と不整合
- データ品質基準の維持困難
そのため、データにアクセスして使用する方法を選択する際は、データを Snowflake とデータプラットフォームのエコシステム内に留めるソリューションを優先します。以下に文書化されたツールとプラットフォームは、この原則を念頭に置いて設計されています。
クエリとダッシュボードのための Snowflake Snowsight
Snowflake はデータ探索と分析のためのすぐに使える機能を提供します。Snowflake へのアクセスを持つチームメンバーは、共同分析のためにデータを直接クエリし、可視化のためのダッシュボードを構築できます。アクセスは Lumos 経由でリクエストできます。
重要な注意: これは探索目的を意図した環境です。分析はチームメンバーと共有できますが、チームメンバーの Snowflake アカウントに紐付いており、オフボーディング時には残存せず、アーティファクトもバージョン管理されません。
Tableau
Tableau は企業向けのビジネスインテリジェンスおよびデータ可視化ツールです。ダッシュボードとレポートを作成するためのガバナンスされた本番対応の環境を提供します。
アクセス、データソース、ガバナンス、ベストプラクティスを含む Tableau に関する包括的な情報については、Tableau ハンドブックページを参照してください。
Census
Census は Snowflake からダウンストリームのビジネスアプリケーションにデータを同期することでデータの活性化を可能にします。
Census の詳細なドキュメントについては、Census ハンドブックページを参照してください。
データポンプ
データポンプは、Snowflake から S3 にデータを抽出してダウンストリームの処理や他のシステムとの統合を行うデータ統合フレームワークです。
データポンプの詳細、新しいポンプの追加方法、現在稼働中のポンプについては、データプラットフォームハンドブックのデータポンプセクションを参照してください。
データスピゴット
データスピゴットは、専用のサービスアカウント、ビュー、ネットワークセキュリティポリシーを通じて外部システムに Snowflake データへの制御されたアクセスを提供します。
データスピゴットのセットアップと現在の実装の詳細については、データプラットフォームハンドブックのデータスピゴットセクションを参照してください。
Streamlit
Streamlit はデータの上にカスタムインタラクティブな Web アプリケーションを構築することを可能にします。
Streamlit の詳細については、Streamlit ハンドブックページを参照してください。
カスタムアプリ
データの上にカスタムアプリケーションを構築するニーズが増加しています。これらのアプリケーションは、標準のダッシュボードと BI ツールが提供できる範囲を超えた特定のビジネスニーズに合わせたソリューションを提供します。
アーキテクチャ
GitLab のカスタムアプリはSnowflake ファースト アーキテクチャに従っています。このアプローチにより、アプリケーションが Snowflake に直接読み書きし、データプラットフォームがガバナンスされた監査可能なデータサーフェスとサービスアカウントモデルを提供することが確保されます。
主要原則:
- アプリは独自の Snowflake アカウントを持ちます
- アプリ Snowflake アカウントへのデータは Snowflake シェアを介してプロビジョニングされます
- Snowflake シェアは監査可能で再現可能になるよう Terraform で管理されます
- Snowflake 以外の追加データベース(データストア)を避けます
データモデリングとテーブル公開
データプラットフォームは Terraform で管理されたデータシェアを通じて、これらのアプリに厳選されたテーブルとビューのセットを公開します。これにより以下が確保されます:
- 必要なデータのみがアプリに公開されます
- すべての公開はバージョン管理され監査可能です
- 新しいアプリは場当たり的な付与を必要とせず同じパターンを再利用できます
- アプリにとって何のデータが保証されるかについての明確な契約が存在します
はじめに
GitLab のデータ上にカスタムアプリを構築するには:
- データプラットフォームチームと協力してデータ要件を定義してください
- 開発/テストとデプロイ用の専用 Snowflake アカウントをリクエストしてください
- データプラットフォームチームはアプリが必要とするテーブルとビューを含む Terraform で管理されたデータシェアを作成します
- データプラットフォームはオレンジ分類までのデータを保持しており、各種の機密データが含まれます。このデータ上に構築されたアプリケーションは Okta/OAuth を通じてアクセスを管理する必要があります。アプリケーションは、SAFE フレームワークへの準拠、該当する場合の行レベルセキュリティ(RLS)、データの分類レベルに合ったロールベースのアクセスなど、適切なセキュリティコントロールを実装する必要があります。
