私はデータガバナンスに不慣れです。質問に情報が不足している場合はご容赦ください。
Azureプラットフォームで中規模の通信会社向けに、データレイクとエンタープライズデータウェアハウスをゼロから構築しています。私たちは、ETL処理、データサイエンス、MLおよびQAアクティビティにADLS gen2、DatabricksおよびSynapseを使用しています。
すでに入力テーブルが1頭あり、年間25 TBです。今後はもっと期待しています。
ビジネスには、クラウドにとらわれないソリューションへの強い要求があります。それでもAWSとAzureで利用できるので、Databricksで問題ありません。
スタックと要件に最適なデータガバナンスソリューションは何ですか?
データガバナンスソリューションはまだ使用していません。私は AWS Data Lake ソリューションが好きです。それは、すぐに使える基本的な機能を提供するからです。 AFAIK、 Azure Data Catalog は、それが ADLS gen2をサポートしていない であるため、古くなっています。
非常にすばやくググリングした後、3つのオプションが見つかりました。
現在、3番目のオプションでAzureスタックが完全にサポートされているかどうかさえわかりません。さらに、それははるかに大きな開発(インフラストラクチャ定義)の努力があります。 それで、レンジャー/アトラスの方向を調べる必要がある理由はありますか?
ImmutaよりもPrivaceraを優先する理由は何ですか?
評価する必要がある他のオプションはありますか?
データガバナンスの観点からは、次のことだけを実行しました。
私は現在イミュタとプリバセラを調査しているので、これら2つの違いについてはまだ詳しくコメントできません。これまでのところ、Immutaは、エレガントなポリシーベースのセットアップで、より良い印象を与えてくれました。
それでも、外部コンポーネントを購入せずに、上記の問題のいくつかを解決する方法があります。
1。セキュリティ
RLSの場合、テーブルACLを使用し、特定のHiveビューへのアクセスのみを許可することを検討してください。
ADLS内のデータにアクセスするには、クラスターでのパスワードパススルーの有効化を確認してください。残念ながら、それからScalaを無効にします。
Azure Data Lake Gen 2にアクセス許可を設定する必要があります。これは、既存の子アイテムにアクセス許可を与えるのはひどい経験です。
データの複製は決して良い考えではないので、列/行のサブセットを持つデータセットのコピーを作成しないでください。
2。系統
3。データ品質
4。データライフサイクル管理
1つのオプションは、ネイティブデータレイクストレージライフサイクル管理を使用することです。これは、Delta/Parquet形式の背後にある実行可能な代替方法ではありません。
Delta形式を使用すると、保持または疑似匿名化を簡単に適用できます
2番目のオプションとして、すべてのデータセットに関する情報(dataset_friendly_name、パス、保持時間、ゾーン、sensitive_columns、所有者など)を含むテーブルがあるとします。 Databricksユーザーは、小さなラッパーを使用して読み取り/書き込みを行います。
DataWrapper.Read( "dataset_friendly_name")
DataWrapper.Write( "destination_dataset_friendly_name")
ロギング、バックグラウンドでのデータのロードを実装するのはあなた次第です。さらに、sensitive_columns、保持時間に基づく動作(どちらもデータセット情報テーブルで使用可能)をスキップできます。かなりの努力が必要です
うまくいけば、あなたは私の答えに何か役に立つものを見つけます。あなたがたどった経路を知ることは興味深いでしょう。