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

ApsaraDB for ClickHouse:MaxCompute から ApsaraDB for ClickHouse にデータをインポートするための外部テーブルの使用 (V20.3 以降)

最終更新日:Jun 12, 2025

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

使用方法に関する注意事項

  • ApsaraDB for ClickHouse Community 互換エディション クラスタのカーネルバージョンは 20.3 以降である必要があります。

  • MaxCompute の使用には料金が発生します。 MaxCompute の課金については、詳細については、「課金対象項目と課金方法」をご参照ください。

  • ApsaraDB for ClickHouse クラスタと MaxCompute プロジェクト間のスムーズな接続を確保するには、仮想プライベートクラウド (VPC) 経由で MaxCompute にアクセスする必要があり、MaxCompute プロジェクトは ApsaraDB for ClickHouse クラスタと同じリージョンにデプロイされている必要があります。

前提条件

  • MaxCompute がアクティブ化されている。 詳細については、詳細については、「MaxCompute と DataWorks をアクティブ化する」をご参照ください。

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

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

手順

  1. MaxCompute で外部テーブルを作成します。

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

    2. 左側のナビゲーションウィンドウで、[DataWorks] > [データ開発] を選択します。

    3. [データ開発] ページで、ポインタを 新建 アイコンの上に移動し、[テーブルの作成] > [MaxCompute] > [テーブル] を選択します。

    4. [テーブルの作成] ダイアログボックスで、[名前] パラメータを構成します。 この例では、maxcompute が使用されています。

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

    6. [一般] セクションで、パラメータを構成します。

      基本属性

      次の表にパラメータを示します。

      パラメータ

      説明

      表示名

      テーブルの表示名。

      テーマ

      テーブルの保存と管理に使用されるフォルダ。 テーブルを保存するために、レベル 1 とレベル 2 のフォルダを指定できます。 [レベル 1 のテーマ] パラメータと [レベル 2 のテーマ] パラメータを使用して、業務カテゴリに基づいてテーブルを分類できます。 同じ業務カテゴリのテーブルを同じフォルダに保存できます。

      説明

      [DataStudio] ページの [ワークスペース テーブル] ペインにあるレベル 1 とレベル 2 のテーマは、フォルダ内のテーブルをより適切に管理するのに役立ちます。 テーマ別に現在のテーブルを [ワークスペース テーブル] ペインですばやく見つけることができます。 テーマがない場合は、作成できます。 テーマの作成方法については、「テーブルの設定を管理する」トピックの テーブルのフォルダを作成または管理する セクションを参照してください。

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

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

      CREATE TABLE IF NOT EXISTS maxcompute
      (    
      v1  INT,    
      v2  INT                
      )
      PARTITIONED BY
      (
          v3 STRING                   
      );
    9. MaxCompute テーブルの構成ページで、[開発環境にコミット][本番環境にコミット] を順番にクリックします。

  2. MaxCompute 外部テーブルにデータを書き込みます。

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

    2. ポインタを 新建 アイコンの上に移動し、[作成] > [ODPS SQL] を選択します。

    3. [ノードの作成] ダイアログボックスで、[パス] パラメータと [名前] パラメータを構成します。

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

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

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

    7. [パラメータ] ダイアログボックスで、[共通スケジューラ リソースグループ] を選択し、[実行] をクリックします。

    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 に置き換えます。これは VPC エンドポイントを示します。 VPC エンドポイントの表示方法については、詳細については、「エンドポイント」をご参照ください。

      次の表にパラメータを示します。

      パラメータ

      説明

      table_name

      テーブルの名前。

      col_name1,col_name2

      列の名前。

      col_type1,col_type2

      列のデータ型。

      説明

      ApsaraDB for ClickHouse テーブルのスキーマタイプは、MaxCompute テーブルのスキーマタイプにマップする必要があります。 マッピングの詳細については、このトピックの データ型マッピング セクションを参照してください。

      tunnel-endpoint

      トンネルエンドポイント。

      ApsaraDB for ClickHouse クラスタと MaxCompute プロジェクト間のスムーズな接続を確保するには、VPC 経由で MaxCompute にアクセスする必要があり、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 シークレット。

      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 のデータ型

ApsaraDB for 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 構造には、null 許容値のみを含めることができます。 それ以外の場合、テーブルの作成時にエラーが発生します。

Array

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

たとえば、MaxCompute の array<int> は、ApsaraDB for ClickHouseArray(Nullable(Int32)) にマップされます。

説明

Array 構造には、null 許容値のみを含めることができます。 それ以外の場合、テーブルの作成時にエラーが発生します。

Struct

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

たとえば、MaxCompute の struct<x:int, y:string> は、ApsaraDB for ClickHouseTuple(Nulable(Int32), Nullable(String)) にマップされます。

説明

Tuple 構造には、null 許容値のみを含めることができます。 それ以外の場合、テーブルの作成時にエラーが発生します。