はじめに
株式会社NTTデータ デザイン&テクノロジーコンサルティング事業本部 デジタルテクノロジー&データマネジメントユニット 所属の@Yuri_Hoshinoです。
2024/6/3~2024/6/6にサンフランシスコで開催されていた DATA CLOUD SUMMIT 24 に現地参加し、新機能の全体概要については以下の記事でまとめております。
Snowflake DATA CLOUD SUMMIT 24 現地レポート Day2 - PLATFORM KEYNOTE
SUMMIT自体のメインテーマはAIとアプリケーションだったのですが、どんなアプリケーションを載せるにもまずは強固な基盤が必要!!ということで基盤周りの機能も強化されています。
通常業務では基盤エンジニアとしてまさにこのあたりの設計を行っています。
この記事を見れば取り入れるべき機能を見落とすことなく設計が出来る、というところを目標として、既存機能と新機能についてまとめております。
※ドキュメントが見つかったものはリンクを記載してますが、日本語ドキュメントは更新がワンテンポ遅いため英語のドキュメントリンクとしている個所もあり
※プレビューの機能は注釈として記載
Snowflake Horizonって何?
公式ページより「データクラウドでコンプライアンス、セキュリティ、プライバシー、相互運用性、アクセスの各機能の統合セットを提供するビルトインガバナンスソリューションです。」とのこと。
要はアプリケーション以外(基盤部分)の機能を包括して名前を付けたよ!!というところとざっくり理解しました。
以下の5つの柱に分かれています。
- コンプライアンス
- セキュリティ
- プライバシー
- 相互運用性
- アクセス
既存機能
以下に、各カテゴリに(おそらく)該当する既存の主要機能を挙げます。
コンプライアンス
コンプライアンス認定
Snowflakeは業界標準のさまざまな規制コンプライアンス要件を満たしています。
複製とフェイルオーバー
すべてのクラウドプラットフォーム・リージョンで複製が可能です。
リージョンレベルの災害に対応することが容易となり、高可用性の担保に役立ちます。
※データベース・共有以外のオブジェクトの複製やフェイルオーバーの利用についてはBusiness Critical Edition(またはそれ以上)が必要
オブジェクトの依存関係
Account Usageビューの"OBJECT_DEPENDENCIES"にてオブジェクトの依存関係を参照することが可能です。
(例)
- "テーブル"を参照する"ビュー"
- "ストレージ統合"を参照する"外部ステージ"
依存関係を特定することで、参照されているオブジェクトの更新影響の考慮、機密データとの関連性調査などに役立ちます。
セキュリティ
認証
Snowflakeは以下の認証方式が利用可能であり、また多要素認証もサポートしております。
- ID/パスワード ※パスワードポリシー設定可
- シングルサインオン(SSO)
- Oktaを介したネイティブ SSO
- キーペア認証
- OAuth
暗号化
Snowflakeはエンドツーエンド暗号化を実施しており、保存中の顧客データについてはAES 256ビット(またはそれ以上) の暗号化、転送中の顧客データに Transport Layer Security (TLS) 1.2 (またはそれ以上) を使用しております。
暗号鍵はSnowflake側で管理しますが、Tri-secret secure機能を有効化すると顧客管理キーを組み合わせることが可能です。
※Tri-secret secureの有効化はBusiness Critical Edition(またはそれ以上)が必要
接続性
ネットワークポリシーによるIP制限、Privatelink等を利用した閉域接続によりセキュアな接続が可能。
※Privatelinkの有効化はBusiness Critical Edition(またはそれ以上)が必要
アクセス制御
Snowflakeのアクセス制御は以下の両方のモデルを組み合わせたものとなります。
- 任意アクセス制御(DAC)
各オブジェクトには所有者があり、所有者はそのオブジェクトへのアクセス権を付与可能。 - ロールベースのアクセス制御(RBAC)
アクセス権限がロールに割り当てられ、ロールはユーザーに割り当てられる。
属性ベースのアクセス制御(ABAC)と比較すると、シンプルで設計しやすい反面、複雑な権限制御を実現しようとするとロールの数が膨大となりやすいといった特徴があります。
ただ、データベースロールやセカンダリロールなどロールの種類も年々追加され、シンプルで細やかな権限制御が可能となってきております。
行や列のアクセス制御ポリシー
-
行アクセスポリシー
条件とマッチする行のみ表示する制御が可能。
(例)"部署"列について、ログインしているロールと対応する部署についての行のみ表示して他は非表示とする。 -
マスキングポリシー
機密データのマスキングが可能。
(例)ロールAが参照する場合以外は、個人名データを"******"と表示する。
ユーザ/ロールごとのデータのアクセス制御としては、パターンに応じたViewを用意してアクセスさせる方法が一般的ですが、SnowflakeではViewの量産運用を必要としないポリシーでの制御が可能となります。
アクセス
データ共有
以下の共有方法があります。
もともとは直接共有、Data Exchange、MarketPlaceが合ってそれぞれ公開対象が広くなっていくイメージでした。
ただ、MarketPlaceに便利な機能が追加されていったため、MarketPlaceの機能を利用可能なまま公開対象を制御できる新機能としてリストという方法が存在しています。
-
リスト
特定のアカウント、MarketPlaceに公開可能。
データの利用状況の統計情報が閲覧可能。 -
直接共有
同じSnowflakeリージョン内の1つ以上のアカウントとデータを共有可能。 -
Data Exchange
招待した選択したアカウントグループとデータを共有可能。
What's Newで紹介された機能
以下が新機能となります。
DATA GOVERNORS, STEWARDS向けとDATA TEAMS向けに分かれています。
セッションで説明されたものだけでも数が多すぎてどれがどれやらですが、基盤エンジニアとして早々に使いそう、と(独断と偏見で)思った機能を優先度高としてまとめております。
どれも興味は引かれるけど実際にすぐ使うのはGAの機能だしなあ、ということでPrPrの機能は基本優先度低めです。
新機能(優先度高)
コンプライアンス
データ品質の監視 ※近日GA
データメトリック関数 (DMF) を使用しSQL式で定義した品質水準に基づいて、重複、NULL、行、一意の値を測定する鮮度やカウントなど、データの状態と整合性を監視することが可能です。
定期的に品質監視を行うことで、データの品質担保、特定のユースケースに合わせたアプリケーションの最適化、クエリパフォーマンスの向上などに役立ちます。
アラート機能と組み合わせることで、通知を行うことも可能です。
リネージインターフェイス ※近日PuPr
Web UI上でテーブル・ビュー等のオブジェクトの上流と下流の系統を俯瞰することが可能です。
相互影響が可視化され、さらにタグとポリシーの一括付与が可能です。
また、MLのモデルに対しても拡張しておりますが、こちらはPrPrになったばかりです。
セキュリティ
Trust center
Trust centerは一定間隔で、スキャナーで指定された推奨事項に照らしてアカウントの設計を評価します。いずれかの推奨事項に違反した場合、セキュリティリスクの一覧と、それらのリスクを軽減する方法を提供します。
デフォルトのスキャナパッケージはCenter for Internet Security (CIS) Snowflake ベンチマークに準拠しています。
具体的には以下のような項目です。
- アカウントレベルのネットワークポリシーが、信頼できるIPアドレスからのアクセスのみを許可するように構成されていること
- 重要なデータに対して DATA_RETENTION_TIME_IN_DAYS パラメータが 90 に設定されていること
- 機密データに対してデータ マスキングが有効になっていること
- 機密データに対して行アクセス ポリシーが構成されていること
個々のユースケースに合わせた設定などは出来ないので、"設計ミス(リスク)"を検知することは出来ても"設定ミス"を検知することは出来ません。
ユーザ独自のスキャナの実装や通知機能との簡易連携を今後ぜひ追加してほしいですね。
また、機能強化として、Native Appsのソフトウェアに対する診断が近日PrPrとなるようです。
プライバシー
投影ポリシー
投影(特定の列の値を表示すること)を制限するポリシーです。
(例)ロールAが参照する場合以外は、個人番号データに対する直接的なSELECTコマンドに値を返さない。
値を見えなくするための手法としてはマスキングポリシーがありますが、投影ポリシーは少し緩い制約のためクエリ操作を工夫すれば間接的に値の閲覧が出来てしまいます。
信頼関係のある組織向けに、直接値を見せたくはないが分析へ利用してほしい、といった場合に簡易に制約を付加できるため役立ちます。
複数のポリシーを重ね掛けすることもでき、以下の順番で処理されます。
- 行フィルター→投影ポリシーの適用→マスキング
集計ポリシー
個別の列の参照における集約関数の利用を強制するポリシーです。
(例)ロールAが参照する場合以外は、個人名データに対するSELECTコマンドに値を返さず、部門における人数集計コマンドの結果は返ってくる。
こちらも直接値を見せたくはないが分析へ利用してほしい、といった場合に簡易に制約を付加できるため役立ちます。
また、集計関数の利用を強制するだけでなく、各集計対象列のレコードの最低数も定められるため、1レコードしかない値について間接的に閲覧できてしまうといった事象も防ぐことが可能です。
集計制約付きテーブルに対するクエリでは、次の集計関数を使用可能です。
- AVG
- COUNT [DISTINCT]
- HLL
- SUM
集計ポリシーおけるエンティティレベルのプライバシー
単純な集計ポリシーだけでは防げない値の特定を防ぐためのより細かい設定です。
(例)集計クエリにおいて、where句でのフィルタ対象の値が2種類以上ないと結果を返さない。
以下の場合、John Smithでフィルタしたageデータの集計結果は実際の値となってしまいますが、最低エンティティ数を2とすると、異なる2個以上の値が含まれる場合でないと結果を返さないようになります。
データクリーンルーム
データクリーンルームとは、複数の組織がデータのプライバシーを保ちながら、共同データ分析、機械学習、AIへの利用が可能となる環境です。
Snowflakeのメリットは、様々なアクターが触る環境として、とにかく簡単に導入・管理できることです。
公式の記事で分かりやすくまとめられているためご参照ください。
相互運用性
Polaris Catalog ※近日PuPr
Icebergテーブルに対応したオープンソースのデータカタログです。
IcebergテーブルはApache Icebergオープンテーブルフォーマット仕様に則っており、Snowflake以外のサービスとのデータコラボレーションを促進します。
詳細は公式ブログを参照ください。
アクセス
Universal Search
Google検索のようなイメージで、Snowflakeに関連する以下の情報から検索が可能です。
- データベース
- スキーマ
- テーブル
- ビュー
- ユーザー定義関数(UDF)およびストアドプロシージャ
- Snowflake Marketplace で提供されるデータ製品
- https://docs.snowflake.com および https://other-docs.snowflake.com のドキュメントページ
- https://community.snowflake.com/ のナレッジベースの記事
今までは個別のページに行って検索していたので、アカウント内外の情報を横断的に検索できるのは、広い層のユーザにとって役立ちます。
(個人的には開発者向けにアカウント内のオブジェクトの検索対象を充実させて欲しい。。)
オブジェクトレベルレプリケーション
データやアプリを共有するためのリスティングにおいて、共有先に異なるクラウド・リージョンを選択した場合に自動複製が可能です。
通常レプリケーション→データ共有という2ステップを踏まなければいけなかったのが1ステップで済むようになりました。
リスティングの対象はオブジェクトレベルで選択可能なのでオブジェクトレベルレプリケーションという名称となっています。
アカウントレプリケーションが個々のオブジェクトレベルで利用可能になったわけではない(オブジェクトレベルのフェイルオーバーは不可)です。
機密データ自動分類 ※PrPr
データ分類機能を利用すると、データに対し分類を実施し、システムタグを付与することが可能です。
この機能について、新しく作成されたオブジェクトに対し自動で分類を行う設定がPrPrとなりました。
将来の権限のように、オブジェクトが作成された瞬間にアクションを起こしてくれる機能は嬉しいですね。
システムタグのカテゴリは以下の通りです。
- セマンティックカテゴリ:名前、年齢、性別等の個人の属性。
- プライバシーカテゴリ:セマンティックカテゴリに該当する場合、さらに「識別子、準識別子、機密」の3つのプライバシーカテゴリに分類する。
カスタム分類子を利用することで、独自のセマンティックカテゴリを指定することも可能です。
新機能(優先度低)
プライバシー
差分プライバシーポリシー ※近日PuPr
差分攻撃(データの入力差分を変化させることで出力差分からデータを特定しようとする攻撃)からデータを保護するための設定です。
データ出力に適切なノイズを付加することで、分析には影響を与えることなくデータの特定を防ぐことが可能です。
これにより、他の組織がデータを分析する際に、機密情報の漏えいや攻撃からデータを保護することに役立ちます。
投影ポリシー・集約ポリシーよりも強力なプライバシー保護が必要な場合に特に適しています。
Synthetic Data Generation ※近日中にPrPr
実データに統計的に類似したデータセットを生成することが可能です。
開発環境やパフォーマンス測定などにデータを利用したいが、実データはポリシー的に利用不可、といった場合に役立ちます。
アクセス
組織のリスティングとプロファイル ※PrPr
データやアプリを共有するためのリスティングはもともとある機能ですが、組織内に限定した共有ができるようになりました。
インターナルマーケットプレイス ※PrPr
マーケットプレイスは第三者向けにデータを公開する機能でしたが、自組織向けにデータを公開することが可能です。
Uniform Listing Locator ※PrPr
リスティングにおいて、WebページのURLのように固有のアドレスを作成可能です。
SQLクエリでアドレスを指定して直接共有コンテンツにアクセスすることが可能です。
Share AI Models ※近日PrPr
リスティングを利用してAIモデルが共有可能です。
Listing API ※PuPr
APIを利用してリスティングの管理が可能です。
SQLでスクリプトを作成し、リスティングの作成・削除などが自動で実行可能です。
AIを活用したオブジェクトの説明 ※近日PrPr
Copilot AIによりテーブル、ビューなどのオブジェクト説明を自動生成することが可能です。
カタログ製品を利用してデータの説明を追加しているシステムは多そうですが、Snowflake上でも簡易的に実現可能となります。
Automatic Tag Propagation ※近日PrPr
オブジェクトにタグを付与することで、タグベースのマスキングポリシーの付与や、コスト分類に役立ちます。
現在はタグを付与したテーブルがクローンされた場合はクローンオブジェクトにもタグが自動付与されますが、以下の場合にも自動付与されるようになります。
- copy intoでデータコピー
- CTASでデータコピー
- Viewの作成
タグの使い勝手微妙に悪かったので、自動伝播されるのは嬉しいですね。
マスキング以外のポリシーとの連携とか、特定のロールが作ったオブジェクトへのタグ自動付与とか、タグ関連で出来る操作がもっと増えたら嬉しい。。
Object Insights Interface ※PrPr
テーブルやビューなどのオブジェクトについて、人気度、アクセス、品質、依存関係に関する関連情報を取得することが可能です。
カタログ製品などで実装されている機能ですが、Snowflake上でも見られるのは嬉しいですね。
おわりに
Snowflake Horizonの既存機能、新機能をまとめました。
新機能の優先度は、あくまで独断と偏見に基づいて、早々に使えそう!なものを優先度高、早々には使えなさそう(PrPr)なものは優先度低としています。
機能を実際に実装しようとすると、GAなのかなどのステータス確認はもちろん、設計を意識してドキュメントを読み込む必要があります。
出来るだけ現場のエンジニアにとって役立つ情報をまとめようとした結果、すごい分量になってしまいましたが、それだけ語りたい機能が多いということで嬉しいですね。
とはいえまだまだここを充実させて欲しいなあ、という点はたくさんあるので、今後のアップデートに期待です!!
仲間募集
NTTデータ テクノロジーコンサルティング事業本部 では、以下の職種を募集しています。
1. クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア)
クラウド/プラットフォーム技術の知見に基づき、DWH、BI、ETL領域におけるソリューション開発を推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/cloud_engineer
2. データサイエンス領域(データサイエンティスト/データアナリスト)
データ活用/情報処理/AI/BI/統計学などの情報科学を活用し、よりデータサイエンスの観点から、データ分析プロジェクトのリーダーとしてお客様のDX/デジタルサクセスを推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/datascientist
3.お客様のAI活用の成功を推進するAIサクセスマネージャー
DataRobotをはじめとしたAIソリューションやサービスを使って、
お客様のAIプロジェクトを成功させ、ビジネス価値を創出するための活動を実施し、
お客様内でのAI活用を拡大、NTTデータが提供するAIソリューションの利用継続を推進していただく人材を募集しています。
https://nttdata.jposting.net/u/job.phtml?job_code=804
4.DX/デジタルサクセスを推進するデータサイエンティスト《管理職/管理職候補》
データ分析プロジェクトのリーダとして、正確な課題の把握、適切な評価指標の設定、分析計画策定や適切な分析手法や技術の評価・選定といったデータ活用の具現化、高度化を行い分析結果の見える化・お客様の納得感醸成を行うことで、ビジネス成果・価値を出すアクションへとつなげることができるデータサイエンティスト人材を募集しています。ソリューション紹介
Trusted Data Foundationについて
~データ資産を分析活用するための環境をオールインワンで提供するソリューション~
https://enterprise-aiiot.nttdata.com/tdf/
最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ(Datalake+DWH+AI/BI)を顧客要件に合わせてカスタマイズして提供します。
可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。
TDFⓇ-AM(Trusted Data Foundation - Analytics Managed Service)について
~データ活用基盤の段階的な拡張支援(Quick Start) と保守運用のマネジメント(Analytics Managed)をご提供することでお客様のDXを成功に導く、データ活用プラットフォームサービス~
https://enterprise-aiiot.nttdata.com/service/tdf/tdf_am
TDFⓇ-AMは、データ活用をQuickに始めることができ、データ活用の成熟度に応じて段階的に環境を拡張します。プラットフォームの保守運用はNTTデータが一括で実施し、お客様は成果創出に専念することが可能です。また、日々最新のテクノロジーをキャッチアップし、常に活用しやすい環境を提供します。なお、ご要望に応じて上流のコンサルティングフェーズからAI/BIなどのデータ活用支援に至るまで、End to Endで課題解決に向けて伴走することも可能です。
NTTデータとTableauについて
ビジュアル分析プラットフォームのTableauと2014年にパートナー契約を締結し、自社の経営ダッシュボード基盤への採用や独自のコンピテンシーセンターの設置などの取り組みを進めてきました。さらに2019年度にはSalesforceとワンストップでのサービスを提供開始するなど、積極的にビジネスを展開しています。
これまでPartner of the Year, Japanを4年連続で受賞しており、2021年にはアジア太平洋地域で最もビジネスに貢献したパートナーとして表彰されました。
また、2020年度からは、Tableauを活用したデータ活用促進のコンサルティングや導入サービスの他、AI活用やデータマネジメント整備など、お客さまの企業全体のデータ活用民主化を成功させるためのノウハウ・方法論を体系化した「デジタルサクセス」プログラムを提供開始しています。
https://enterprise-aiiot.nttdata.com/service/tableau
NTTデータとAlteryxについて
Alteryx導入の豊富な実績を持つNTTデータは、最高位にあたるAlteryx Premiumパートナーとしてお客さまをご支援します。
導入時のプロフェッショナル支援など独自メニューを整備し、特定の業種によらない多くのお客さまに、Alteryxを活用したサービスの強化・拡充を提供します。
NTTデータとDataRobotについて
NTTデータはDataRobot社と戦略的資本業務提携を行い、経験豊富なデータサイエンティストがAI・データ活用を起点にお客様のビジネスにおける価値創出をご支援します。
NTTデータとInformaticaについて
データ連携や処理方式を専門領域として10年以上取り組んできたプロ集団であるNTTデータは、データマネジメント領域でグローバルでの高い評価を得ているInformatica社とパートナーシップを結び、サービス強化を推進しています。
https://enterprise-aiiot.nttdata.com/service/informatica
NTTデータとSnowflakeについて
NTTデータではこれまでも、独自ノウハウに基づき、ビッグデータ・AIなど領域に係る市場競争力のあるさまざまなソリューションパートナーとともにエコシステムを形成し、お客さまのビジネス変革を導いてきました。
Snowflakeは、これら先端テクノロジーとのエコシステムの形成に強みがあり、NTTデータはこれらを組み合わせることでお客さまに最適なインテグレーションをご提供いたします。