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

ApsaraDB for ClickHouse:MaxCompute 外部テーブルを使用したインポート (V 20.3 以降)

最終更新日:Mar 10, 2026

このトピックでは、MaxCompute 外部テーブルを使用して ApsaraDB for ClickHouse にデータをインポートする方法について説明します。

注意事項

  • ご利用の ApsaraDB for ClickHouse Community-Compatible クラスターのカーネルバージョンは 20.3 以降である必要があります。

  • MaxCompute は有料サービスです。 課金方法の詳細については、「MaxCompute の課金方法」をご参照ください。

  • ApsaraDB for ClickHouse と MaxCompute 間の安定したネットワーク接続を確保するために、Alibaba Cloud VPC を使用してください。 MaxCompute サービスとご利用の ApsaraDB for ClickHouse クラスターは、同じリージョンに存在する必要があります。

前提条件

  • MaxCompute サービスが有効化されていること。 詳細については、「MaxCompute の有効化」をご参照ください。

  • ご利用の ApsaraDB for ClickHouse クラスターと同じリージョンに MaxCompute プロジェクトが作成されていること。 詳細については、「MaxCompute プロジェクトの作成」をご参照ください。

  • Resource Access Management (RAM) ユーザーが MaxCompute を使用する必要がある場合、Alibaba Cloud アカウント (root ユーザー) はその RAM ユーザーに必要な権限を付与する必要があります。 詳細については、「RAM ユーザーの準備」をご参照ください。

操作手順

  1. MaxCompute 外部テーブルの作成

    1. MaxCompute コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、DataWorks > Data Studio を選択します。

    3. [DataStudio]」ページで、「新規作成」アイコンにマウスを合わせ、[新規テーブル] > [MaxCompute] > [テーブル]を選択します。

    4. [新規テーブル] ダイアログボックスで、[テーブル名] を入力します。このトピックでは maxcompute を例として使用します。

    5. [作成] をクリックします。

    6. [基本プロパティ] セクションで、パラメーターを設定します。

      基本属性

      パラメーターは次のとおりです。

      設定項目

      説明

      表示名

      テーブルの表示名。

      テーマ

      DataWorks におけるテーマは、フォルダに相当します。 テーブルに対して第 1 レベルと第 2 レベルのフォルダを定義します。 これにより、ビジネス目的別にテーブルを分類し、同じ種類のテーブルを同じフォルダにまとめることができます。

      説明

      第 1 レベルと第 2 レベルのテーマは、DataWorks でテーブルを管理するためのフォルダとして表示され、テーブル管理を効率化します。 [テーブル管理] ページでテーマ別にテーブルを素早く見つけることができます。 利用可能なテーマがない場合は、作成することも可能です。 詳細については、「テーブルテーマの定義」をご参照ください。

    7. ツールバーで、[DDL] をクリックします。

    8. DDL」ダイアログボックスで、テーブルを作成するための次の文を入力し、[テーブルスキーマの生成] をクリックします。

      CREATE TABLE IF NOT EXISTS maxcompute
      (    
      v1  INT,    
      v2  INT                
      )
      PARTITIONED BY
      (
          v3 STRING                   
      );
    9. [開発環境へ送信] および [本番環境へ送信] をクリックしてください。

  2. MaxCompute 外部テーブルへのデータ書き込み

    1. [DataStudio] ページで、左側のナビゲーションウィンドウの [アドホッククエリ] をクリックします。

    2. 新建 アイコンにカーソルを合わせ、新規 > ODPS SQL を選択します。

    3. 新規ノード」ダイアログボックスで、[パス] を選択し、[名前] を入力します。

    4. [Confirm] をクリックします。

    5. ノード編集ページで、次の文を入力して MaxCompute 外部テーブルにデータを書き込みます。

      insert into maxcompute PARTITION (v3='2021') values (1,2),(2,3);
    6. ツールバーで 执行 アイコンをクリックします。

    7. [パラメーター]」ウィンドウで、「[スケジュールの共有リソースグループ]」を選択し、「[OK]」をクリックします。

    8. MaxCompute コンピューティングコスト推定」ウィンドウで、[推定料金] を確認し、[実行] をクリックします。

  3. ApsaraDB for ClickHouse テーブルの作成

    1. ApsaraDB for ClickHouse コンソールにログインします。

    2. [クラスター] ページで、送信先クラスターの ID をクリックします。

    3. ナビゲーションバーの右上隅で、[データベースにログオン] をクリックします。

    4. テーブルを作成するためのステートメントを入力し、[実行 (F8)] をクリックします。

      テーブルを作成するための構文は次のとおりです。

      CREATE TABLE <table_name> [on cluster default]
      (
      'col_name1' col_type1,
      'col_name2' col_type2,
      ...
      )
      ENGINE = MaxCompute('<tunnel-endpoint>', '<project-name>', '<table-name>', '<partition-spec>', '<access-key-id>', '<access-key-secret>',<read-thread-num>, '<quota>');
      説明

      MaxComputeRaw テーブルエンジンを使用する場合、構文内の tunnel-endpointodps-endpoint に変更してください。 odps-endpoint パラメーターは VPC エンドポイントを指定します。 VPC エンドポイントの取得方法の詳細については、「エンドポイント」をご参照ください。

      パラメーターは次のとおりです。

      パラメーター名

      説明

      table_name

      テーブル名。

      col_name1,col_name2

      列名。

      col_type1,col_type2

      列の型。

      説明

      ApsaraDB for ClickHouse テーブルのスキーマは、MaxCompute テーブルに対応している必要があります。 データ型のマッピングの詳細については、「データ型マッピング」をご参照ください。

      tunnel-endpoint

      Tunnel サービスの Tunnel エンドポイント。

      ApsaraDB for ClickHouse と MaxCompute 間の安定したネットワーク接続を確保するために、Alibaba Cloud VPC を使用してください。 MaxCompute サービスとご利用の ApsaraDB for ClickHouse クラスターは、同じリージョンに存在する必要があります。

      説明

      VPC の tunnel-endpoint を表示する方法の詳細については、「エンドポイント」をご参照ください。

      project-name

      MaxCompute プロジェクトの名前。

      table-name

      MaxCompute 外部テーブルの名前。

      partition-spec

      MaxCompute パーティション。

      access-key-id

      MaxCompute プロジェクトへのアクセスに使用する AccessKey ID。

      access-key-secret

      MaxCompute プロジェクトへのアクセスに使用する AccessKey Secret。

      read-thread-num (任意)

      MaxCompute テーブルの単一シャードを読み取るための並行スレッド数。 デフォルト値は 1 です。

      quota (任意)

      MaxCompute 計算リソースの単位。 デフォルトでは、共有クォータが使用されます。

      テーブルを作成する文は次のとおりです。

      CREATE TABLE default.maxcomputetest ON CLUSTER default (
      v1 Int32, 
      v2 Int32
      ) ENGINE = MaxCompute('http://dt.cn-hangzh******.aliyun-inc.com', 'ckfwt', 'maxcompute', 'v3=2021', 'LTAI****************', 'yourAccessKeySecret');
  4. ApsaraDB for ClickHouse テーブルのクエリ

    1. ApsaraDB for ClickHouse コンソールにログインします。

    2. [クラスター] ページで、送信先クラスターの ID をクリックします。

    3. ナビゲーションバーの右上隅で、[データベースにログオン] をクリックします。

    4. クエリ文を入力し、[実行 (F8)] をクリックします。

      SELECT * FROM maxcomputetest;

      クエリ結果は次のとおりです。查询

データ型マッピング

MaxCompute のデータ型

ClickHouse のデータ型

Boolean

UInt8

Tinyint

UInt8, Int8

Smalllint

UInt16, Int16

Int

UInt32, Int32

Bigint

UInt64, Int64

Float

Float32

Double

Float64

Char

String

Varchar

String

Binary

String

String

String

Date

Date

Datetime

Datetime

UUID

サポートされていません

INTERVAL

サポートされていません

Decimal

String

Timestamp

サポートされていません

Map

Nested(Nullable(keyType), Nullable(valueType))。 単一レベルでネストされていない Map 構造のみがサポートされます。

たとえば、MaxCompute の map<string, string> は、ApsaraDB for ClickHouseNested(k Nullable(String), v Nullable(String)) に対応します。

説明

Nested 内の型は Nullable である必要があります。 そうでない場合、テーブル作成時にエラーが発生します。

Array

Array(Nullable(Type))。 単一レベルでネストされていない Array 構造のみがサポートされます。

たとえば、MaxCompute の array<int> は、ApsaraDB for ClickHouseArray(Nullable(Int32)) に対応します。

説明

Array 内の型は Nullable である必要があります。 そうでない場合、テーブル作成時にエラーが発生します。

Struct

Tuple(Nullable(Type))。 単一レベルでネストされていない Struct 構造のみがサポートされます。

たとえば、MaxCompute の struct<x:int, y:string> は、ApsaraDB for ClickHouseTuple(Nullable(Int32), Nullable(String)) に対応します。

説明

Tuple 内の型は Nullable である必要があります。 そうでない場合、テーブル作成時にエラーが発生します。