Data Map は、外部カタログから間接的にメタデータを収集します。StarRocks データベースで外部カタログを使用する場合、このトピックの手順に従って、Data Map でカタログのテーブルとメタデータの詳細を表示できます。設定と収集が完了すると、Data Map の検索機能を使用して、StarRocks 外部カタログに関連付けられたテーブルや列などのメタデータを検出して表示できます。
背景情報
DataWorks で StarRocks データソースを設定し、メタデータ収集を開始すると、デフォルトでは、Data Map は StarRocks の内部カタログからのみメタデータを収集します。StarRocks 外部カタログからメタデータを収集するには、DataWorks で関連するデータソースへの接続を設定し、メタデータ収集タスクを実行する必要があります。収集後、Data Map は自動的にメタデータを関連付けます。その後、StarRocks データソース内で外部カタログとその関連メタデータを表示できます。
前提条件
-
ご利用の StarRocks データベースを DataWorks の StarRocks データソースとして追加済みであること。詳細については、「StarRocks データソースの追加」をご参照ください。
-
許可リストベースのアクセス制御を持つデータソースからメタデータを収集するには、まず必要な権限を設定する必要があります。詳細については、「メタデータ収集の許可リストの設定」をご参照ください。
制限事項
-
Elasticsearch Catalog タイプの外部カタログはサポートされていません。
-
ソースとして OSS を使用する Paimon Catalog はサポートされていません。
操作手順
このトピックでは、StarRocks の MySQL 外部カタログを例として使用します。MySQL データベースを mysql_catalog_db として設定する場合、Data Map で MySQL メタデータコレクターを設定して作成する必要があります。コレクターが MySQL データベースからメタデータを収集した後、StarRocks の mysql_catalog_db カタログに関連付けられたメタデータを検索して表示できます。
ステップ 1:データの準備
MySQL データソースの作成
データベース名が mysql_catalog_db の MySQL データソースを作成し、mysql_catalog_table という名前のサンプルテーブルを作成します。以下はサンプルスクリプトです。
CREATE TABLE mysql_catalog_table(
catalog_table_id INT,
catalog_table_name VARCHAR(255)
)
MySQL JDBC ドライバーパッケージの準備
ご利用の MySQL バージョン用の MySQL Java Database Connectivity (JDBC) ドライバーを OSS にアップロードする必要があります。
-
ご利用の MySQL バージョン用の JDBC ドライバーの JAR パッケージを OSS にアップロードします。OSS コンソールにログインします。左側のナビゲーションウィンドウで、[バケット] をクリックします。
-
対象のバケット名をクリックして、Manage Files ページを開きます。この例では、
catalog-bucket-ossバケットを使用します。 -
Create Directory をクリックして、JAR パッケージを保存するディレクトリを作成します。[フォルダー名] に
libsと入力します。 -
JDBC ドライバーの JAR パッケージ用に作成したディレクトリに移動します。Upload File をクリックします。[アップロードするファイル] エリアで、[ファイルのスキャン] をクリックし、
mysql-connector-java-8.0.28.jarJDBC ドライバーの JAR パッケージを選択してから、Upload File をクリックします。 -
アップロードした JDBC ドライバーの JAR パッケージを見つけます。ファイルの Actions 列で、Details をクリックします。Details ページで、[ACL の設定] をクリックします。[ACL の設定] ページで、ファイルの権限を Public Read/Write に設定し、OK をクリックしてパブリックアクセスを有効にします。
ステップ 2:外部接続の設定
-
ご利用の StarRocks インスタンスに接続します。
-
EMR コンソールにログインします。左側のナビゲーションウィンドウで、EMR Serverless > スターロックス を選択します。Instances をクリックします。
-
作成した StarRocks インスタンスを見つけ、Actions > [インスタンスに接続] をクリックします。[新しい接続] タブが表示されます。
-
[新しい接続] タブで、ご利用の StarRocks インスタンスの Region と Instance 名を選択します。[接続名]、Username、Password を入力します。Test Network Connectivity をクリックします。接続が成功したら、OK をクリックして StarRocks インスタンスの [クエリ] ページに移動します。
-
-
StarRocks で、MySQL の外部カタログを設定します。
-
クエリリストの下にある [+ファイル] をクリックして Create File ダイアログボックスを開きます。Name を入力し、Storage Path を選択し、OK をクリックしてファイルを作成します。
-
All Files で、作成したファイルの名前をダブルクリックして StarRocks インスタンスエディターを開きます。次のサンプルスクリプトを入力して外部カタログを作成します。詳細については、「StarRocks 外部カタログの設定例」をご参照ください。
CREATE EXTERNAL CATALOG mysql_db_catalog PROPERTIES ( "driver_class" = "com.mysql.cj.jdbc.Driver", "driver_url" = "https://catalog-bucket-oss.oss-cn-hangzhou-internal.aliyuncs.com/libs/mysql-connector-java-8.0.28.jar", "type" = "jdbc", "user" = "<UserName>", "password"="<PassWord>", "jdbc_uri" = "jdbc:mysql://xxx:3306/mysql_catalog_db" );説明-
mysql_db_catalogパラメーターは、MySQL データソースの外部カタログの名前を指定します。 -
<UserName>と<PassWord>を実際の認証情報に置き換えてください。 -
jdbc_uri:作成したデータベースの接続 URL を入力します。
-
-
編集後、Run をクリックしてスクリプトを実行します。スクリプトが正常に実行された後、Database タブで関連するテーブル情報を表示できます。
[外部カタログ] タブをクリックします。[カタログ] ドロップダウンリストで、作成したカタログ (例:
mysql_db_catalog) を選択します。その後、それを展開して対応するデータベースとテーブル構造を表示できます。
-
ステップ 3:データソースの設定
-
DataWorks コンソールにログインします。対象のリージョンに切り替えます。左側のナビゲーションウィンドウで、Workspace をクリックします。Workspaces リストで、管理したいワークスペースを見つけ、[操作] 列の Manage をクリックして Management Center を開きます。
-
管理センターの左側のナビゲーションウィンドウで、 をクリックします。[データソース] ページで、StarRocks と MySQL のデータソースを追加します。詳細については、「[非推奨] StarRocks データソースの設定」および「MySQL データソースの設定」をご参照ください。
説明MySQL データソースでは、接続文字列モードを選択する必要があります。このモードは、他の JDBC ベースの外部データソースでも必要です。
ステップ 4:メタデータ収集の設定
DataWorks コンソールにログインします。対象のリージョンに切り替えます。左側のナビゲーションウィンドウで、 を選択し、[データマップへ移動] をクリックします。Data Map で、メタデータ収集を設定します。
内部カタログの収集
「カスタムコレクターの作成」の手順に従って、StarRocks コレクターを作成します。
外部カタログの収集
同様に、MySQL データソースのメタデータ収集を完了する必要があります。そうしないと、MySQL 外部カタログのメタデータは検索できません。
MySQL メタデータ収集の設定で、Data Sources for Which Crawlers Are Created フィールドを MySQL に設定します。
ステップ 5:メタデータの検索
StarRocks と MySQL のメタデータ収集タスクが完了したら、左側の
検索アイコンをクリックして検索ページを開きます。
-
Type タブで、Connection タブに移動し、スターロックス データソースを選択します。Filter Conditions で、作成した StarRocks の Instance、MySQL の外部 Data Catalog、および対応する MySQL の Database を選択します。その後、StarRocks データソース内で MySQL カタログ情報を表示できます。
検索結果には、
mysql_catalog_tableなどの MySQL カタログテーブルのレコードが表示されます。これは、MySQL カタログのメタデータが StarRocks データソースに正常に関連付けられたことを示します。 -
または、Type タブで、Connection タブに移動し、MySQL データソースを選択します。Filter Conditions で、作成した MySQL データベースの名前を選択し、テーブル情報が一致することを確認します。
検索結果には、
mysql_catalog_tableなどの MySQL データソースのテーブルレコードが表示されます。テーブル名とレコード数が StarRocks 外部カタログ検索の結果と一致する場合、MySQL データソースのメタデータ収集が正しく設定されていることが確認されます。 -
テーブルの詳細の表示
対象のテーブル名をクリックして詳細を表示します。
テーブル詳細ページには、[詳細]、[リネージ]、[使用上の注意] の 3 つのタブがあります。[詳細] タブの [列情報] セクションには、テーブルの各列の [列名]、[タイプ]、[説明] が表示されます。たとえば、このセクションには
catalog_table_id(int) やcatalog_table_name(varchar) などの列が表示されます。
StarRocks 外部カタログの設定例
StarRocks 外部カタログを設定するには、次の構文を使用します。
CREATE EXTERNAL CATALOG <Catalog_Name> COMMENT '' PROPERTIES("type"="","xxx1"="","xxx2"="");
Catalog_Name パラメーターは、外部データカタログの名前を指定します。名前はカスタマイズできます。
次の表に、StarRocks 外部カタログの設定例を示します。詳細については、「Data Catalog」をご参照ください。
|
Collection Mode |
接続方法 |
例 |
|
Default Catalog |
default |
カタログタイプが Default Catalog に設定されている場合、StarRocks はデフォルトで内部メタデータを収集します。そのため、外部カタログを設定する必要はありません。詳細については、「データ分析」をご参照ください。 |
|
ODPS Catalog |
VPC |
説明
|
|
Hive Catalog |
Hive Metastore (HMS) |
説明
例の |
|
Data Lake Formation (DLF) |
説明
例の |
|
|
Iceberg Catalog |
Hive |
説明
Hive Metastore をメタデータサービスとして使用し、Iceberg 外部カタログを設定する場合、例の |
|
Hudi Catalog |
Hive |
説明
Hive MetaStore をメタデータサービスとして使用して Hudi 外部カタログを設定する場合、例の |
|
Data Lake Formation (DLF) |
説明
DLF をメタデータサービスとして使用して外部 Hudi カタログを設定する場合、例の |
|
|
Delta Lake Catalog |
Hive |
説明
|
|
Data Lake Formation (DLF) |
説明
例の |
|
|
JDBC Catalog |
MySQL |
説明
|
|
PostgreSQL |
説明
|
|
|
Paimon Catalog |
Hive (StarRocks 3.1 以降でサポート) |
説明
Hive をメタデータサービスとして使用して Paimon Catalog を設定する場合:
|
|
Data Lake Formation (DLF、StarRocks 3.1 以降でサポート) |
説明
DLF をメタデータサービスとして使用して Paimon Catalog を設定する場合:
|
|
|
Unified Catalog |
Hive (StarRocks 3.2 以降でサポート) |
説明
Unified Catalog の設定時に Hive をメタデータサービスとして使用する場合、例の |