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 | ✅ | ✅ | ❌ | ✅ | ✅ | カタログがサポートされています。このタイプのクローラは、内部カタログのメタデータエンティティのみをクエリするために使用できます。 |
| Lindorm | ❌ | ✅ | ❌ | ✅ | ✅ | - |
エンティティタイプ ( 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 |
クローラーメタデータインスタンス |
|
データベース |
|
データテーブル |
|
列 |
|