Amundsenは、メタデータを基盤としてデータエンジニアやアナリストの生産性を向上させるデータ探索プラットフォームです。このプラットフォームの利点は、BIツール(SupersetやTableauなど)とシームレスに連携し、データセットとダッシュボードを紐付けて管理できる点にあります。本稿では、これらのツールを統合するための具体的な構築手法を解説します。
Apache Supersetとの連携構成
Supersetとの連携では、主にデータプレビュー機能の有効化に焦点を当てます。Amundsen側からSupersetのデータソースへ直接クエリを発行することで、ユーザーはコンテキストを切り替えることなくデータの内容を確認できます。
以下は、Supersetの接続設定を行うための概念的なPythonモジュールの実装例です。
class SupersetMetadataClient:
def __init__(self, host_url, auth_token):
self.endpoint = f"{host_url}/api/v1"
self.headers = {"Authorization": f"Bearer {auth_token}"}
def fetch_preview(self, table_id):
# 指定されたデータセットのプレビューを取得する処理
target_path = f"{self.endpoint}/dataset/{table_id}/preview"
response = requests.get(target_path, headers=self.headers)
return response.json() if response.status_code == 200 else None
このクライアントをAmundsenのアプリケーション層に統合し、対象となるテーブルのURIとSuperset内のIDをマッピングすることで、UI上に「プレビュー」ボタンを動的に生成します。
Tableauメタデータ統合の実装
Tableauとの統合には、Tableau Metadata APIを活用した抽出プロセスが推奨されます。これにより、ワークブックやデータソース間の依存関係をAmundsenへ取り込むことが可能です。
抽出器(Extractor)の構成例を以下に示します。
# 抽出設定の定義例
tableau_config = {
"server_url": "https://analytics.corp.com",
"api_version": "3.12",
"auth": {
"token_id": "SERVICE_ACCOUNT_TOKEN",
"secret": "HIDDEN_SECRET_KEY"
},
"filter": {
"excluded_projects": ["Sandbox", "Archive"]
}
}
def execute_extraction(config):
# Tableau APIからリソースを抽出し、AmundsenのGraphモデルへ変換
engine = TableauIntegrationEngine(config)
engine.sync_dashboards()
engine.map_data_lineage()
このプロセスでは、tableau_dashboard_extractorを使用してダッシュボードの基本情報を収集し、必要に応じてtableau_query_extractorで背後のSQLクエリを解析します。これにより、データソースからBIダッシュボードまでのリネージ(系統)を可視化できます。
運用のためのベストプラクティス
- 認証の集約: 本番環境では、APIクレデンシャルを直接ハードコードせず、Secret Manager等の安全なキー管理サービスを使用して注入してください。
- 増分抽出の採用: 大規模なTableau環境では、全件取得は負荷が高いため、最終更新日時を判定条件とした増分更新を設計に取り入れることが不可欠です。
- エラーハンドリング: 各抽出器の実行ログを中央集権的に監視し、APIのレートリミット超過や認証期限切れを早期に検知できる体制を構築してください。