概要
Databricksのメタデータ管理を実施する上での管理対象項目の検討するために、項目を洗い出しました。
検討中であるため、修正予定です。
管理対象の項目
データベースの定義
- 基本情報
- 名称
- 規定ディレクトリ
- ディスクリプション(コメント)
- その他プロパティ
テーブル定義
-
通常のテーブル情報
- 基本情報
- 物理列
- カラムの位置
- カラム名
- カラムのデータ型
- カラムのディスクリプション(コメント)
- 配列にすることで、日本語列名?
- テーブル分類
- グローバルテーブル
- ビュー
- 一時ビュー
- グローバル一時ビュー
- Delta liveテーブル
- Delta liveビュー
- 計算列(生成列)
- カラム名
- 計算ロジック
- パーティション列
- ロケーション
- テーブルディスクリプション(コメント)
- テーブルへの権限付与
- 行レベルセキュリティ
- ルールベースによる行レベルセキュリティ
- データ権限(認可)テーブルを利用した行レベルセキュリティ
- 列レベルセキュリティ
- 列への参照権限付与による列レベルセキュリティ
- マスキング
- 永続データマスキングによる列レベルセキュリティ
- 動的データマスキングによる列レベルセキュリティ
- 行レベルセキュリティ
- テーブルプロパティ
- 共通
- 統計情報
- 統計情報を取得対象のカラム dataSkippingNumIndexedCols = -1(テーブルごとに設計)
- 制約
- NULL制約
- Check制約
- タイムトラベル関連
- ログ保持期間 delta.logRetentionDuration = "interval 30 days"
- データの保持期間 delta.deletedFileRetentionDuration = "interval 7 days"
- 変更データフィード
- 変更データフィードの有効化 delta.enableChangeDataFeed = true
- 外部システムからdelta lake参照時に利用するマニフェストファイルへの対応
- マニフェストファイルの自動更新 delta.compatibility.symlinkFormatManifest.enabled=true
- カスタマイズプロパティ
- 日本語のテーブル名 'table_name_ja-jp' = 'テスト'
- バッチ処理対象のテーブル
- 共通
- 最適化された書き込み delta.autoOptimize.optimizeWrite = true
- 自動圧縮 delta.autoOptimize.autoCompact = true
- 7.2以前のクラスターで参照しない場合
- delta.checkpoint.writeStatsAsJson = false
- 共通
- ストリーミング処理対象のテーブル
- 数分の許容ができる場合
- 'delta.checkpoint.writeStatsAsStruct' = 'true'
- 数分の許容ができる場合
- 共通
- ブルームフィルター
- 集計ロジック
- CTASのテーブル
- SQL文
- Delta liveテーブル・Delta liveビュー
- SQL文 or Sparkデータフレーム操作
- CTASのテーブル
- 基本情報
-
Feature Storeのテーブル情報
- テーブル名
- 処理ロジックを含むスキーマ
- 主キー
- ディスクリプション
- パーティション列
関数の定義
検討中
- データソースのインターフェースファイル
- テーブルプロパティにいれる?
- データ取得元
- テーブル定義
- テーブルプロパティにいれる?
- カラム定義
- テーブルのコメントに、配列でいれる?
- テーブル定義
- データ取得に利用しているコード
- テーブルプロパティにいれる?
対象外
- 共通
- タイムゾーン spark.sql.session.timeZone
- クラスターごと
- セッション
- タイムゾーン spark.sql.session.timeZone
- 書き込み時のプロパティ
- バッチ処理対象のテーブル
- スキーマの展開 mergeschema = true
- ストリーミング処理対象のテーブル
- パーティション数をコア数と同値に spark.sql.shuffle.partitions", sc.defaultParallelism
- 同時処理するファイル数 maxFilesPerTrigger
- チェックポイントファイルのパス checkpointLocation
- RocksDB 状態ストアの構成 "spark.sql.streaming.stateStore.providerClass",
"com.databricks.sql.streaming.state.RocksDBStateStoreProvider"
- バッチ処理対象のテーブル
- 書き込み後の対応
参考リンク
- Databricks機能関連ドキュメント
- パラメータ関連公式ドキュメント
- テーブルバッチの読み取りと書き込み - Azure Databricks - Workspace | Microsoft Docs
- 対話型クエリのパフォーマンスを向上させる
- 自動最適化-Azure Databricks - Workspace | Microsoft Docs
- Change data feed-Azure Databricks - Workspace | Microsoft Docs
- ベスト プラクティス - Delta Lake - Azure Databricks - Workspace | Microsoft Docs
- テーブルユーティリティコマンド-Azure Databricks - Workspace | Microsoft Docs
- 非公式ドキュメント