データ分析
2026/04/15
阿部 哲也

OpenMetaData入門~ローカルにメタデータを取り込む~

OpenMetadataのREST APIをPythonで呼び出し、データベース・スキーマ・テーブル・用語集・ドメインなど8種類のメタデータを一括収集する方法を解説。

はじめに

データ活用を推進するうえで、社内に散在するデータの所在・構造・意味を一元管理する「データカタログ」の重要性が高まっています。OpenMetadata は OSS のデータカタログ・データ品質管理プラットフォームであり、データベース・テーブル・用語集・ドメインといったメタデータを REST API 経由で参照できます。


本記事では、OpenMetadata が提供する REST API を Python スクリプトで呼び出し、権限の範囲内にある全リソースを JSON として収集するまでの手順を解説します。

目的

本取り組みの目的は以下のとおりです。


・メタデータの一括取得:OpenMetadata上に登録されたデータベース・スキーマ・テーブル・用語集・ドメイン等を API 経由で収集する。


・AIエージェントへの連携: 収集したメタデータを社内のAIサポートエージェントに取り込み、データ検索・問い合わせ対応を自動化する。


・権限の最小化:Bot専用ロールを作成し、閲覧に必要な最小限の権限のみ付与する。

手順

3-1. BotアカウントとJWTトークンの発行


OpenMetadataではBotとして登録したサービスアカウントにJWTトークンを発行できます。



  1. OpenMetadataの管理画面 > Settings>Botsから新規Botを作成する。

  2. Botにカスタムロール(例:DataCatalogReaderBot)を割り当て、必要なView権限を付与する。

  3. Botの詳細ページからJWT Tokenをコピーし、スクリプトの環境変数として管理する。


3-2. 基本的なAPI呼び出し


OpenMetadata REST APIのベースURLはhttps://<your-host>/apiです。Authorization: Bearer <JWT_TOKEN>ヘッダーを付与するだけで認証できます。



主なエンドポイントは以下のとおりです。



3-3. ページネーション対応 (全権取得)


OpenMetadataはカーソルベースのページネーションを採用しています。レスポンスのpaging.afterに次ページのカーソルが含まれ、nullになるまでループすることで全件取得できます。



3-4. 全リソースの一括収集スクリプト


上記のページネーション関数を使い、8 種類のリソースを順に収集してJSONファイルに保存します。



3-5. メタデータ横断検索


特定のキーワードでメタデータを横断検索したい場合は/v1/search/queryを使います。


まとめ

本記事ではOpenMetadata REST APIをPythonで呼び出し、権限範囲内の全メタデータを収集する方法を紹介しました。


OpenMetadataのAPIは豊富なフィルタ・フィールド指定オプションを備えているため、用途に応じて取得項目を絞り込むことでレスポンスサイズの最適化も図れます。


New call-to-action