dwh_auditor.analyzer — DWH コスト分析・セキュリティ診断ロジック¶
dwh_auditor.analyzer パッケージは、Extractor から受け取った Pydantic モデルと
config.yaml のしきい値を突き合わせ、診断を行う 純粋な Python ロジック です。
注釈
このパッケージは google.cloud.bigquery を 一切インポートしません。
外部 API 通信が存在しないため、ユニットテストはミリ秒単位で完了します。
ダミーの QueryJob / TableStorage オブジェクトを渡すだけでテストできます。
コスト分析 (analyzer.cost)¶
高コストクエリの分析ロジック.
注意: このモジュールは google.cloud.bigquery を一切インポートしてはなりません。 純粋な Python ロジックのみで構成し、単体テストがミリ秒単位で完了するようにします。
定常コスト分析 (analyzer.recurring)¶
定常実行クエリの分析ロジック.
注意: このモジュールは google.cloud.bigquery を一切インポートしてはなりません。
フルスキャン検知 (analyzer.scan)¶
フルスキャン(非効率クエリ)の検知ロジック.
注意: このモジュールは google.cloud.bigquery を一切インポートしてはなりません。 純粋な Python ロジックのみで構成し、単体テストがミリ秒単位で完了するようにします。
- dwh_auditor.analyzer.scan.detect_full_scans(jobs, tables, config)[ソース]¶
フルスキャンの可能性があるクエリを検知する.
バイト比率バリデーション方式: クエリの課金バイト数が参照テーブルの物理サイズの 90% 以上ならフルスキャンとみなす。
- パラメータ:
tables (list[TableStorage]) -- テーブルサイズ情報をルックアップするためのリスト
config (AppConfig) -- しきい値
- 戻り値:
FullScanInsight のリスト
- 戻り値の型:
ゾンビテーブル検知 (analyzer.zombie)¶
テーブルプロファイリング・およびゾンビ(未使用)判定ロジック.
注意: このモジュールは google.cloud.bigquery を一切インポートしてはなりません。 純粋な Python ロジックのみで構成し、単体テストがミリ秒単位で完了するようにします。
分析ランナー (analyzer.runner)¶
分析ランナー: 各 Analyzer を呼び出して AuditResult に集約する.
注意: このモジュールは google.cloud.bigquery を一切インポートしてはなりません。
- dwh_auditor.analyzer.runner.run_analysis(top_cost_jobs, heavy_scan_jobs, recurring_stats, table_usages, tables, config, analyzed_days, project_id)[ソース]¶
全 Analyzer を実行し、総合監査結果を返す.
- パラメータ:
- 戻り値:
AuditResult オブジェクト
- 戻り値の型: