すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:StarRocks コネクタ

最終更新日:Aug 22, 2026

StarRocks コネクタは、外部カタログメカニズムを使用して、データをインポートしたり外部テーブルを作成したりすることなく、MaxCompute データソースにシームレスにアクセスし、複雑な SQL クエリを実行します。これにより、データ分析の効率が向上し、運用保守 (O&M) の複雑さとコストが削減されます。このトピックでは、StarRocks コネクタを使用して MaxCompute にアクセスする方法について説明します。

背景情報

StarRocks は、オンライン分析処理 (OLAP) ベースの多次元分析、カスタムレポートの作成、リアルタイムデータ分析、アドホッククエリなど、複数のエンタープライズレベルの分析ワークロードをサポートする、次世代の高速な超並列処理 (MPP) データベースです。StarRocks の詳細については、「StarRocks の概要」をご参照ください。StarRocks は、単一のシステム内で内部データと外部データの両方を管理し、さまざまな外部ソースに保存されているデータに簡単にアクセスしてクエリを実行できる Catalog (データカタログ) 機能をサポートしています。詳細については、「Catalog の概要」をご参照ください。

前提条件

  • バージョン 3.2.3 以降の StarRocks クラスターをデプロイし、クラスターが MaxCompute サービスに正しくアクセスできることを確認済みであること。StarRocks クラスターのデプロイ方法の詳細については、「 Docker Compose を使用した StarRocks 共有なしクラスターのデプロイ」をご参照ください。

  • 専用の Data Transmission Service リソースグループ (サブスクリプション) を購入するか、オープンストレージ (従量課金) リソースをアクティブ化済みであること。

制限事項

  • 標準テーブル、パーティションテーブル、クラスタ化テーブル、Delta テーブル、マテリアライズドビューの読み取りをサポートしています。外部テーブルや論理ビューの読み取りはサポートしていません。

  • JSON データ型に対するネイティブなクエリはサポートされていません。データは VARCHAR 型として読み込まれます。

  • スキーマが無効になっている MaxCompute プロジェクトのみをサポートしています。スキーマの詳細については、「スキーマ操作」をご参照ください。

MaxCompute カタログの作成

StarRocks にログインし、StarRocks で MaxCompute カタログを作成します。外部カタログの詳細については、「Create External Catalog」をご参照ください。

構文

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
    "type" = "odps",
    CatalogParams,
    ScanParams,
    CachingMetaParams
)

パラメータの説明

  • 共通パラメータ

    パラメータ

    必須

    説明

    catalog_name

    はい

    MaxCompute カタログの名前。次の命名規則に従ってください:

    • 英字 (a~z または A~Z)、数字 (0~9)、またはアンダースコア (_) で構成し、先頭は英字である必要があります。

    • 最大長は 1023 文字です。

    • カタログ名では大文字と小文字が区別されます。

    type

    はい

    データソースのタイプ。このパラメータを odps に設定します。

    comment

    いいえ

    MaxCompute カタログの説明。

    CatalogParams

    はい

    StarRocks が MaxCompute にアクセスするためのパラメータ。

    ScanParams

    いいえ

    StarRocks が MaxCompute のファイルストレージにアクセスするためのパラメータ。

    CachingMetaParams

    いいえ

    メタデータキャッシュポリシーを定義するパラメータ。

  • CatalogParams パラメータ

    パラメータ

    必須

    説明

    odps.endpoint

    はい

    MaxCompute サービスへの接続アドレス。MaxCompute プロジェクトの作成時に選択したリージョンとネットワーク接続方法に基づいてエンドポイントを設定します。リージョンとネットワークタイプ別のエンドポイントについては、「エンドポイント」をご参照ください。

    重要

    現在、Alibaba Cloud VPC ネットワークのみがサポートされています。

    odps.project

    はい

    MaxCompute プロジェクトの名前。MaxCompute コンソールにログインし、ワークスペース > プロジェクト管理 ページに移動してプロジェクト名を取得します。

    説明

    標準モードでワークスペースを作成した場合、このパラメータを設定する際に、本番環境と開発環境 (_dev) のプロジェクト名を区別してください。

    odps.access.id

    はい

    Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID。AccessKey 管理ページに移動して AccessKey ID を取得します。

    odps.access.key

    はい

    AccessKey ID に対応する AccessKey シークレット。

    odps.tunnel.quota

    はい

    MaxCompute Tunnel の課金モード。Data Transmission Service を利用してデータを読み込む際に使用されます。有効な値:

    • pay-as-you-go:オープンストレージ (従量課金) リソースを使用します。

    • subscription:購入済みの専用 Data Transmission Service リソースグループを使用します。

  • ScanParams パラメータ

    パラメータ

    必須

    説明

    odps.split.policy

    いいえ

    データスキャン時に使用するシャーディング戦略。有効な値:

    • size (デフォルト):データサイズに基づいて分割します。デフォルト値:256 MB。

    • row_offset:行数に基づいて分割します。

    説明

    シャーディング戦略は、コンピューティングエンジンのデータスキャン並列処理に大きく影響します。デフォルトの戦略がニーズを満たさない場合は、row_offset 戦略を選択し、odps.split.row.count パラメータを使用して調整してください。

    odps.split.row.count

    いいえ

    シャードあたりの最大行数。デフォルト値:4194304。値の範囲:0 より大きい。

    説明

    このパラメータは、odps.split.policyrow_offset に設定されている場合にのみ設定してください。

  • CachingMetaParams パラメータ

    パラメータ

    必須

    説明

    odps.cache.table.enable

    いいえ

    テーブルのメタデータをキャッシュするかどうか。有効な値:

    • true (デフォルト):テーブルメタデータのキャッシュを有効にします。これにより、メタデータの取得と更新の速度が向上し、頻繁な DDL 操作、大規模なマルチユーザー環境、または複雑なクエリ最適化を伴うシナリオに適しています。

    • false:テーブルメタデータのキャッシュを無効にします。キャッシュリソースには限りがあり、キャッシュに過度に依存するとメモリを消費しすぎる可能性があるため、頻度の低いクエリやメタデータが頻繁に変更されるテーブルではキャッシュを無効にしてください。

    odps.cache.table.expire

    いいえ

    キャッシュされたテーブルメタデータが自動的に削除されるまでの時間間隔 (秒)。デフォルト値:86400 (24 時間)。値の範囲:0 以上。

    odps.cache.table.size

    いいえ

    キャッシュするテーブルメタデータエントリの数。デフォルト値:1000。

    odps.cache.partition.enable

    いいえ

    ターゲットテーブルのすべてのパーティションのメタデータをキャッシュするかどうか。有効な値:

    • true (デフォルト):ターゲットテーブルのすべてのパーティションのメタデータのキャッシュを有効にします。

    • false:キャッシュを無効にします。すべてのパーティションのメタデータはキャッシュされません。

    説明

    テーブルがパーティション化されていない場合、odps.cache.partition.enable パラメータは効果がありません。

    odps.cache.partition.expire

    いいえ

    キャッシュされたパーティションメタデータが自動的に削除されるまでの時間間隔 (秒)。デフォルト値:86400 (24 時間)。値の範囲:0 以上。

    odps.cache.partition.size

    いいえ

    メタデータをキャッシュできるパーティションテーブルの数。デフォルト値:1000。

    odps.cache.table-name.enable

    いいえ

    MaxCompute プロジェクト内のすべてのテーブル名をキャッシュするかどうか。有効な値:

    • true:MaxCompute プロジェクト内のすべてのテーブル名のキャッシュを有効にします。

    • false (デフォルト):MaxCompute プロジェクト内のすべてのテーブル名のキャッシュを無効にします。

    odps.cache.table-name.expire

    いいえ

    MaxCompute プロジェクト内のキャッシュされたテーブル名情報が自動的に削除されるまでの時間間隔 (秒)。デフォルト値:86400 (24 時間)。値の範囲:0 以上。

次の例では、MaxCompute プロジェクト mf_mc_bj を使用して、odps_catalog という名前の MaxCompute カタログを作成します。

-- カタログを作成
CREATE EXTERNAL CATALOG odps_catalog PROPERTIES(
    "type"="odps",
    "odps.access.id"="<yourAccessKeyId>",
    "odps.access.key"="<yourAccessKeySecret>",
    "odps.endpoint"="http://service.cn-beijing.maxcompute.aliyun.com/api",
    "odps.tunnel.quota"="pay-as-you-go",
    "odps.project"="mf_mc_bj"
);

MaxCompute へのアクセス

  1. ターゲットのカタログと MaxCompute プロジェクトに切り替えます。この例では odps_catalogmf_mc_bj を使用します。

    • 構文

      • 方法 1

        -- カタログを指定
        SET CATALOG <catalog_name>;
        -- MaxCompute プロジェクトを指定
        USE <project_name>;
      • 方法 2

        USE <catalog_name>.<project_name>;
    • SET CATALOG odps_catalog;
      USE mf_mc_bj;
  2. データをクエリします。この例では src テーブルを使用します。

SELECT * FROM src LIMIT 10;

結果は次のようになります。

+------+-------+
| key  | value |
+------+-------+
| 1    | 1     |
| 3    | 3     |
| 2    | 2     |
| 4    | 100   |
| 5    | 200   |
| 6    | 300   |
| 3    | 400   |
+------+-------+

その他の操作

MaxCompute カタログの表示

  • 現在の StarRocks クラスター内のすべてのカタログを一覧表示します。

    SHOW CATALOGS;

    結果は次のようになります。

    +-----------------+----------+------------------------------------------------------------------+
    | Catalog         | Type     | Comment                                                          |
    +-----------------+----------+------------------------------------------------------------------+
    | default_catalog | Internal | An internal catalog contains this cluster‘s self-managed tables. |
    | odps_catalog    | Odps     | NULL                                                             |
    +-----------------+----------+------------------------------------------------------------------+
  • 特定のカタログの CREATE 文を表示します。

    SHOW CREATE CATALOG odps_catalog;

    結果は次のようになります。

    +--------------+--------------------------------------------------------------------------+
    | Catalog      | Create Catalog                                                           |
    +--------------+--------------------------------------------------------------------------+
    | odps_catalog | CREATE EXTERNAL CATALOG `odps_catalog`
                     PROPERTIES ("odps.endpoint"  =  "http://service.cn-beijing.maxcompute.aliyun.com/api",
                     "odps.access.id"  =  "<yourAccessKeyId>",
                     "odps.access.key"  =  "<yourAccessKeySecret>",
                     "odps.project"  =  "mf_mc_bj",
                     "type"  =  "odps"
                    )|
    +-----------------------------------------------------------------------------------------+

MaxCompute テーブルスキーマの表示

  • MaxCompute テーブルスキーマを記述します。

    • 構文

      DESC[RIBE] <catalog_name>.<database_name>.<table_name>;
    • パラメータの説明

      • catalog_name:必須。カタログの名前。

      • database_name:必須。ターゲットカタログの MaxCompute プロジェクトの名前。

      • table_name:必須。ターゲット MaxCompute プロジェクトのテーブルの名前。

    • DESC odps_catalog.mf_mc_bj.src;

      結果は次のようになります。

      +-------+------+------+-------+---------+-------+
      | Field | Type | Null | Key   | Default | Extra |
      +-------+------+------+-------+---------+-------+
      | id    | INT  | Yes  | false | NULL    |       |
      | a     | INT  | Yes  | false | NULL    |       |
      +-------+------+------+-------+---------+-------+
  • MaxCompute テーブルスキーマとその CREATE TABLE 文を表示します。

    • 構文

      SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
    • パラメータの説明

      • catalog_name:必須。カタログの名前。

      • database_name:必須。ターゲットカタログの MaxCompute プロジェクトの名前。

      • table_name:必須。ターゲット MaxCompute プロジェクトのテーブルの名前。

    • SHOW CREATE TABLE odps_catalog.mf_mc_bj.src;

      結果は次のようになります。

      +-------+--------------------------------------------------------------------------------+
      | Table | Create Table                                                                   |
      +-------+--------------------------------------------------------------------------------+
      | src   | CREATE TABLE `src` (
        `id` int(11) DEFAULT NULL,
        `a` int(11) DEFAULT NULL
      ) |
      +-------+--------------------------------------------------------------------------------+

MaxCompute カタログの削除

次のコマンドを実行して、MaxCompute カタログを削除します。

DROP CATALOG odps_catalog;

コストベースオプティマイザ (CBO) の統計情報収集

現在のバージョンの StarRocks は、MaxCompute テーブル統計の自動収集をサポートしていません。次のコマンドを実行して、統計情報収集タスクを手動で作成します。

--  を MaxCompute テーブル名に置き換えます
ANALYZE TABLE <table_name>;
説明

StarRocks の CBO は、さまざまな統計に基づいてコストを見積もり、数万の実行計画の中から最もコストの低い実行計画を選択することで、複雑なクエリの効率とパフォーマンスを向上させることができます。詳細については、「CBO のための統計情報収集」をご参照ください。

メタデータキャッシュの手動更新

デフォルトでは、StarRocks はクエリのパフォーマンスを向上させるために MaxCompute のメタデータをキャッシュします。テーブルスキーマの変更やテーブルデータの更新後、テーブルのメタデータを手動で更新し、StarRocks が最新のメタデータをすぐに取得できるようにしてください。

--  を MaxCompute テーブル名に置き換えます
REFRESH EXTERNAL TABLE <table_name>;

よくある質問

データ読み取り時のエラー:「Your slot quota is exceeded.」

  • 問題分析

    このエラーは、データ読み取り量が Data Transmission Service のクォータを超えた場合に発生します。読み取り中、StarRocks はテーブルを複数のシャードに分割し、それらを BE ノードに分散します。BE ノードはスレッドプールを使用してデータを並行して読み取ります。読み取り中に占有されるスロット数は、通常次のようになります: Max(シャード数、BE 数 × BE スレッドプールの同時実行数)

  • 解決策

    • より同時実行性の高い専用の Data Transmission Service リソースグループを購入します。手順については、「専用の Data Transmission Service リソースグループの購入と使用」をご参照ください。

    • ScanParams パラメータを設定してシャード数を調整します。row_offset シャーディング戦略を使用する場合は、odps.split.row.count パラメータも増やしてください。

    • StarRocks BE のスレッドプールパラメータ scanner_thread_pool_queue_sizescanner_thread_pool_thread_num を変更します。詳細については、「StarRocks の概要」をご参照ください。

付録:型マッピング

MaxCompute のフィールド型

StarRocks のフィールド型

BOOLEAN

BOOLEAN

TINYINT

TINYINT

SMALLINT

SMALLINT

INT

INT

BIGINT

BIGINT

FLOAT

FLOAT

DOUBLE

DOUBLE

DECIMAL(p, s)

DECIMAL(p, s)

STRING

VARCHAR(1073741824)

VARCHAR(n)

VARCHAR(n)

CHAR(n)

CHAR(n)

JSON

VARCHAR(1073741824)

BINARY

VARBINARY

DATE

DATE

DATETIME

DATETIME

TIMESTAMP

DATETIME

重要

StarRocks には TIMESTAMP 型がありません。TIMESTAMP データを読み取る際、DATETIME として扱われるため、精度の損失が発生します。

ARRAY

ARRAY

MAP

MAP

STRUCT

STRUCT