ウェハウスやストレージとしての機能が充実しているSnowflakeですが、昨今ではデータマネジメントにおける、データセキュリティ、データ品質、参照データとマスターデータ、メタデータ、データ品質を担保する機能の拡充も進んでいます。
今回はDEMBOKのDAMAホイールの項目を参考に、データマネジメント活用に役立つSnowflake機能を紹介します。
データマネジメントがなぜ必要か
データは企業にとって重要な資産である。多くの組織がそのことを認識している。データとインフォメーションは、顧客、製品、サービスに関して新しい発見をもたらす。組織を改革し、戦略的目標を達成することにも貢献する。(DEMBOK 1.イントロダクションより引用)
データはビジネス上の意思決定や管理において重要度を増しています。そのため組織のデータ活用ではウェアハウス化、可視化などハードな面に加えて、データの運用・管理などソフト面がますます求められるようになりました。
単に作って終わり、データを引っ張って終わりではなく、データから継続的な価値を生み出すためにデータマネジメントはデータ活用を促進させる中で必須項目となっていくでしょう。
主要なデータマネジメント活動
DEMBOK掲載のDAMAホイールの図を引用
今回はDAMAホイールを元にデータガバナンスの領域を定義ます。
データセキュリティ
機密データを不正アクセスや破壊から保護することは非常に重要です。Snowflake の堅牢なデータ セキュリティ対策には、ロールベースのアクセス制御 (RBAC) が含まれており、ユーザー権限とアクセス レベルを管理するための非常に詳細なモデルを提供します。
任意アクセス制御(DAC)
各オブジェクトには所有者があり、所有者はそのオブジェクトへのアクセス権を付与できます。
ロールベースアクセス制御(RBAC)
Snowflake の RBAC モデルは用途に合わせて作成、付与することが可能です。
オブジェクトレベルで特定の権限を付与したり、制御したりできるのでアクセスを細かく管理することが可能です。
列レベルセキュリティ
列レベルでアクセス制御する方法としてマスキングポリシーと外部トークン化が挙げられます。
マスキングポリシーは列データのマスクを、外部トークン化はSnowflakeへのデータロード前に機密情報をトークン化する方法です。マスキングポリシーはブログもあるので参考にしてください。https://blog.truestar.co.jp/snowflake/20240216/58599/
行レベルセキュリティ
ポリシーベースの行フィルタリングをしたり、UDFとストアドプロシージャーを活用して複雑な要件にも対応できます。
データの暗号化
自動で行ってくれるので意識する必要はないのですが、Snowflakeはデータ保存、転送時に暗号化を施してくれます。また暗号化キーの管理も自動的に行われます。https://docs.snowflake.com/ja/user-guide/security-encryption-manage
タグ
タグを設定することで設定したオブジェクトのコンプライアンス、検出、保護、およびリソースの使用状況のユースケースに関する機密データをモニターできるようになります。https://docs.snowflake.com/ja/user-guide/object-tagging
メタデータ
メタデータを効果的に管理することで、組織はデータの検出可能性、理解、ガバナンスを向上させることができます。メタデータはデータ品質担保、取捨選択、管理プロセスの効率化に欠かせないので取得、管理をする仕組みを設ける必要があります。
メタデータの取得
■システム生成のメタデータテーブル
Snowflakeではテーブル/列名、データ型、統計、パーティション分割、クラスタリング、圧縮設定などの重要な詳細を自動的にキャプチャします。
■ユーザー定義のメタデータ作成
説明タグ、詳細なコメント、ビジネス関連の分類、機密データの注釈を使用して自動生成以外の情報を付随させることも可能です。
■外部メタデータストアとの統合
Snowflakeと連携できるオープンソースのデータカタログでリネージを作成することも可能です。
OpenMetadataを使用して、Snowflakeのメタデータ管理をするデモがこちらのブログで書かれてます。
https://blog.truestar.co.jp/snowflake/20240209/58535/
メタデータの管理
■InformationSchema
Snowflake情報スキーマは、アカウントで作成されたオブジェクトに関する広範なメタデータ情報を提供するシステム定義のビューとテーブル関数のセットで構成されています。
■Iceberg Table
Iceberg Tableは、Apache Icebergという規格を用いているSnowflake上のテーブルオブジェクトになります。
AWSやazureといった他のプラットフォームでも使うことができるため、複数のプラットフォームで相互にデータを活用管理したい場合に使用されます。テーブルの情報であれば、各データの紐づけやメタデータが保存されるためメタデータ管理にも優れたものになります。
https://blog.truestar.co.jp/snowflake/20240830/60216/
■Tag
データセキュリティの話でも出てきましたがタグを使ってデータをグループ化し情報管理することも可能です。セキュリティ要件の高いデータをまとめて管理する場合に便利な機能になります。https://docs.snowflake.com/ja/user-guide/object-tagging
■外部メタデータストアとの統合
先ほどのOpenMetadataを利用してデータ生成プロセスを可視化し、不要データの削除やフローの効率化などに役立てます。
データ品質
低品質のデータを用いることで意思決定を誤り大きな損失を被る可能性があります。データ品質を担保するためにはデータ入力のプロセス管理や改善のライフサイクルを設定する必要があります。以下にもSnowflakeの機能を利用して品質を担保する例を挙げます。
データプロファイリング
DESCRIBE TABLE、SHOW COLUMNS、INFORMATION_SCHEMA などの Snowflake のテーブルと列に関する詳細なメタデータを使用して、統計サマリー、データ分布分析、外れ値検出などのデータ プロファイルを作成できます。プロファイルを元に異常な値はないかを組織で検知します。
データメトリック関数
Data Quality Monitoring and data metric functionsでDMFを作成し品質に満たないデータ(電話番号7桁以外の数値が入っているなど)を除外、検知する方法も標準機能として装備されています。https://blog.truestar.co.jp/snowflake/20240524/59819/
検証
組み込みデータ型と制約 (NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY)、UDF とストアド プロシージャを使用して複雑な検証ルールを定義し、データの整合性と一貫性を担保、またカスタム関数をを用いて特定のデータ パターン、範囲、または関係を検証するなど幅広く品質チェックを行うことができます
おわりに
今回は3つの要件に絞って機能紹介しました。
多様な機能を駆使してデータマネジメント活用に活かしたいですね。
**************
truestarでは、Snowflake導入検討、導入支援や環境構築まで幅広くサポート可能です。
Snowflakeに゙興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらから相談ください!
また、truestarではSnowflake Marketplaceにて、加工済みオープンデータを無償提供するPrepper Open Data Bank、全国の飲食店の情報を集めたデータセットの販売を行っております。(サービスリンク)
これまでのSnowflakeに関する記事はこちら
***************