DataWorks API 操作 ( 2024-05-18 ) は、さまざまなメタデータエンティティのクエリをサポートしています。このトピックでは、メタデータエンティティに関連する概念について説明します。
メタデータエンティティオブジェクト
Data Map は、メタデータクローラーを使用して、さまざまな種類とレベル ( サブタイプ ) のメタデータエンティティオブジェクトを収集および管理します。サポートされているクローラーの種類の詳細については、「サポートされているクローラーの種類」をご参照ください。
Data Map は、メタデータレベル構造に基づいて、次のメタデータエンティティレベルをサポートしています。
カタログ
データベース
スキーマ
テーブル
列
エンティティレベルは、クローラーの種類によって異なります。
サポートされているクローラタイプ
識別子 | 表示名 | サポートされているメタデータエンティティレベル | 備考 | ||||
カタログ | データベース | スキーマ | テーブル | 列 | |||
| MaxCompute | ❌ | ❌ | ✅ | ✅ | ✅ |
|
| Data Lake Formation | ✅ | ✅ | ❌ | ✅ | ✅ | Alibaba Cloud アカウント内のすべてのメタデータエンティティを識別するためのデフォルトクローラが提供されています。 |
| HMS | ❌ | ✅ | ❌ | ✅ | ✅ |
|
| Hologres | ❌ | ✅ | ✅ | ✅ | ✅ | |
| MySQL | ❌ | ✅ | ❌ | ✅ | ✅ | |
| Oracle | ❌ | ✅ | ✅ | ✅ | ✅ | |
| PostgreSQL | ❌ | ✅ | ✅ | ✅ | ✅ | |
| SQL Server | ❌ | ✅ | ✅ | ✅ | ✅ | |
| AnalyticDB MySQL | ❌ | ✅ | ❌ | ✅ | ✅ | このタイプのクローラは、analyticdb_for_mysql および analyticdb_for_spark データソースからメタデータを収集するために使用できます。 |
| AnalytidDB MySQL 2.0 | ❌ | ✅ | ❌ | ✅ | ✅ | |
| AnalyticDB PostgreSQL | ❌ | ✅ | ✅ | ✅ | ✅ | |
| OTS | ❌ | ✅ | ❌ | ✅ | ✅ | |
| ClickHouse | ❌ | ✅ | ❌ | ✅ | ✅ | |
| StarRocks | ✅ | ✅ | ❌ | ✅ | ✅ | カタログがサポートされています。このタイプのクローラは、内部カタログのメタデータエンティティのみをクエリするために使用できます。 |
エンティティタイプ ( EntityType )
EntityType は、メタデータエンティティタイプの識別子です。EntityType の値は、${CrawlerType}-${SubType}
フォーマットです。
CrawlerType
は、クローラータイプの識別子です。たとえば、CrawlerType の値は、mysql
、maxcompute
、dlf
、またはholo
にすることができます。SubType
は、メタデータエンティティサブタイプの識別子です。たとえば、SubType の値は、catalog
、database
、schema
、table
、またはcolumn
にすることができます。
MaxCompute テーブルを使用する場合、EntityType の値は maxcompute-table
です。
メタデータエンティティ ID ( MetaEntityId )
MetaEntityId: メタデータエンティティオブジェクトの識別子を示します。識別子には、可読性、一意性、および拡張性という特性があります。
クローラーメタデータインスタンスと、カタログ、データベース、スキーマ、テーブル、および列のエンティティオブジェクトがサポートされています。
メタデータエンティティ ID は、エンティティの一意の識別子として機能します。各レベルの識別子は、コロン ( :
) で区切ることができます。空の文字列は、サポートされていないレベルのプレースホルダーとして使用されます。
クローラーメタデータインスタンス
クローラーメタデータエンティティ ID: メタデータエンティティ ID の一意の識別子。
MaxCompute
およびDLF
クローラータイプの場合、テナントまたは Alibaba Cloud アカウント内のすべてのメタデータエンティティにデフォルトのクローラーが提供されます。クローラーメタデータエンティティ ID は、${CrawlerType}
フォーマットです。手動で作成する必要がある他の種類のクローラーの場合、クローラーメタデータエンティティ ID は、
${CrawlerType}:${MetaSourceId}
フォーマットです。CrawlerType
: クローラータイプの識別子。たとえば、CrawlerType の値は、holo
またはmysql
にすることができます。MetaSourceId
: メタデータソースの識別子。インスタンスモード: インスタンス ID またはクラスター ID に対応します。
URL モード: URL エンコードされた URL ( Jdbc Url または Endpoint ) に対応します。
例:
MaxCompute
タイプの場合、クローラーメタデータエンティティ ID はmaxcompute
です。インスタンスモードの
Hologres
タイプの場合、インスタンス ID がi-z6j3kxxx7
であれば、クローラーメタデータエンティティ ID はholo:i-z6j3kxxx7
です。URL モードの
MySQL
タイプの場合、URL が jdbc:mysql://47.0.X.X:3306/test_db であれば、クローラーメタデータエンティティ ID は mysql:jdbc%3Amysql%3A%2F%2F47.0.X.X%3A3306%2Ftest_db です。
データテーブル関連のメタデータエンティティ
メタデータエンティティ ID のフォーマットは、${EntityType}:${MetaSourceId}:${Catalog}:${Database}:${Schema}:${Table}:${Column}
です。次の要素が含まれています。
レベル | プロパティ | 説明 |
- |
| エンティティタイプの識別子。 |
- |
|
|
カタログ |
| カタログ識別子。 StarRocks タイプの場合、これはカタログ名です。DLF タイプの場合、これはカタログ ID です。他のタイプの場合、空の文字列がプレースホルダーとして使用されます。 |
データベース |
| データベース名。 |
スキーマ |
| スキーマ名。 スキーマをサポートしていないタイプの場合、空の文字列がプレースホルダーとして使用されます。
|
テーブル |
| データテーブル名。 |
列 |
| フィールド名。 |
メタデータエンティティの例
MaxCompute
、DLF
、HMS
、Hologres
、および MySQL
を含むさまざまなレベルのメタデータエンティティ ID の例を次に示します。
次の ID の例では、各レベルの識別子は、コロン ( :
) で区切ることができます。空の文字列は、サポートされていないレベルのプレースホルダーとして使用されます。
MaxCompute
スキーマモデルが有効になっている MaxCompute プロジェクトのみがスキーマレベルをサポートし、データテーブル ID とフィールド ID の対応する位置にスキーマ名を指定する必要があります。
スキーマモデルが有効になっていない MaxCompute プロジェクトはスキーマレベルをサポートしておらず、データテーブル ID とフィールド ID の対応する位置には空の文字列がプレースホルダーとして使用されます。
プロジェクト project_name
( スキーマモデルが有効になっている )、スキーマ schema_name
、テーブル table_name
、およびフィールド column_name
の場合、各レベルのエンティティ ID は次のとおりです。
レベル | ID |
クローラメタデータインスタンス |
|
プロジェクト |
|
スキーマ |
|
データテーブル |
|
列 |
|
プロジェクト project_name
( スキーマモデルが有効になっていない )、テーブル table_name
、およびフィールド column_name
の場合、各レベルのエンティティ ID は次のとおりです。
レベル | ID |
クローラーメタデータインスタンス |
|
プロジェクト |
|
データテーブル |
|
列 |
|
DLF
カタログ catalog_id
、データベース database_name
、テーブル table_name
、およびフィールド column_name
の場合、各レベルのエンティティ ID は次のとおりです。
レベル | ID |
クローラメタデータインスタンス |
|
カタログ |
|
データベース |
|
データテーブル |
|
列 |
|
HMS
EMR クラスタインスタンス c-a1b2c3xxx
、データベース test_db
、テーブル test_tbl
、およびフィールド test_col
の場合、各レベルのエンティティ ID は次のとおりです。
レベル | ID |
クローラメタデータインスタンス |
|
データベース |
|
データテーブル |
|
列 |
|
Hologres
この例では、Hologres インスタンス hgpostcn-cn-a1b2c3xxx
、データベース test_db
、スキーマ test_schema
、データテーブル test_tbl
、および列 test_col
を使用します。次の表は、各レベルのエンティティ ID を示しています。
レベル | ID |
クローラーメタデータインスタンス |
|
プロジェクト |
|
スキーマ |
|
データテーブル |
|
列 |
|
MySQL
MySQL データソース接続文字列 jdbc:mysql://47.0.X.X:3306/test_db
、データベース test_db
、テーブル test_tbl
、およびフィールド test_col
の場合、各レベルのエンティティ ID は次のとおりです ( MetaSourceId は、JDBC 接続文字列を URL エンコードすることによって生成されます )。
レベル | ID |
クローラーメタデータインスタンス |
|
データベース |
|
データテーブル |
|
列 |
|