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

Tablestore:MaxCompute から Tablestore へのアクセス

最終更新日:Mar 27, 2026

本トピックでは、同一の Alibaba Cloud アカウント内で MaxCompute と Tablestore を接続する方法について説明します。

背景情報

MaxCompute は、ペタバイト規模のデータ向けに高速かつフルマネージドなデータウェアハウスソリューションを提供するビッグデータ処理サービスです。コスト効率が高く、効率的な方法で大規模なデータセットを処理および分析できます。シンプルなデータ定義言語 (DDL) 文を使用することで、MaxCompute 内に外部データソースと接続する外部テーブルを作成できます。これにより、さまざまな種類のデータをインジェストおよびエクスポートできます。MaxCompute のテーブルは構造化データを格納しますが、外部テーブルは構造化データに限定されません。

Tablestore と MaxCompute にはそれぞれ独自の型システムがあります。以下の表に、両者のデータ型マッピングを示します。

Tablestore

MaxCompute

STRING

STRING

INTEGER

BIGINT

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN

BINARY

BINARY

前提条件

MaxCompute から Tablestore にアクセスする前に、以下の前提条件を満たしてください。

  1. MaxCompute の有効化

  2. ワークスペースの作成

  3. AccessKey ペアの作成。

  4. RAM コンソールで、MaxCompute が Tablestore にアクセスできるように権限を付与します。詳細については、「」および「クロスアカウントでの権限付与」をご参照ください。

  5. Tablestore コンソールで、インスタンスの作成およびデータテーブルの作成を行います。

    本例では、Tablestore インスタンスおよびデータテーブルの詳細は以下のとおりです。

    • インスタンス名:cap1

    • データテーブル名:vehicle_track

    • プライマリキー:vid(integer)、gt(integer)

    • エンドポイント:https://cap1.cn-hangzhou.ots-internal.aliyuncs.com

      説明

      MaxCompute から Tablestore にアクセスする際は、Tablestore インスタンスのプライベートエンドポイントの使用を推奨します。

    • インスタンスのネットワークアクセス制御を設定します。デフォルトでは、Tablestore は任意のネットワークからのアクセスを許可しています。デフォルト設定(以下)のまま使用しても構いません。

      image

ステップ 1:クライアントのインストールと構成

  1. MaxCompute クライアント をダウンロードして解凍します。

    説明

    ご利用のマシンに Java Runtime Environment(JRE)1.7 以降がインストールされていることを確認してください。

  2. conf/odps_config.ini ファイルを編集し、クライアントを以下のように構成します。

    # Alibaba Cloud アカウントの AccessKey ペア(AccessKey ID および AccessKey Secret)。AccessKey ペアを表示するには、Alibaba Cloud 管理コンソールにログインし、右上隅のプロフィール画像にカーソルを合わせて [AccessKey 管理] をクリックします。
    access_id=*******************
    access_key=*********************
    # アクセス対象のプロジェクト。
    project_name=my_project
    # MaxCompute サービスのエンドポイント。
    end_point=https://service.odps.aliyun.com/api
    # MaxCompute Tunnel サービスのエンドポイント。
    tunnel_endpoint=https://dt.odps.aliyun.com
    # ジョブ実行後にクライアントが返す Logview URL。この URL を開くことで、ジョブ実行の詳細情報を確認できます。
    log_view_host=http://logview.odps.aliyun.com
    # HTTPS 経由のアクセスを有効にするかどうかを指定します。
    https_check=true
    説明

    odps_config.ini ファイルでは、シャープ記号(#)がコメントを表しますが、MaxCompute クライアントではダブルハイフン(--)がコメントを表します。

  3. bin/odpscmd.bat を実行し、show tables; を入力します。

    現在の MaxCompute プロジェクト内のテーブルが表示された場合、構成は正しく設定されています。

    odps2

ステップ 2:外部テーブルの作成

MaxCompute の外部テーブル ots_vehicle_track を作成し、Tablestore の vehicle_track データテーブルに関連付けます。

関連付けるデータテーブルの情報は以下のとおりです。

  • インスタンス名:cap1

  • データテーブル名:vehicle_track

  • プライマリキー:vid(integer)、gt(integer)

  • エンドポイント:https://cap1.cn-hangzhou.ots-internal.aliyuncs.com

CREATE EXTERNAL TABLE IF NOT EXISTS ots_vehicle_track
(
vid bigint,
gt bigint,
longitude double,
latitude double,
distance double ,
speed double,
oil_consumption double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler' -- (1)
WITH SERDEPROPERTIES ( -- (2)
'tablestore.columns.mapping'=':vid, :gt, longitude, latitude, distance, speed, oil_consumption', -- (3)
'tablestore.table.name'='vehicle_track' -- (4)
)
LOCATION 'tablestore://cap1.cn-hangzhou.ots-internal.aliyuncs.com'; -- (5)

以下の表に、各パラメーターの説明を示します。

番号

パラメーター

説明

(1)

com.aliyun.odps.TableStoreStorageHandler

Tablestore データ用の組み込み MaxCompute ストレージハンドラ。MaxCompute が Tablestore とどのように相互作用するかを定義します。

(2)

SERDEPROPERITES

ストレージハンドラのプロパティを指定します。tablestore.columns.mapping および tablestore.table.name パラメーターを必ず定義してください。

(3)

tablestore.columns.mapping

必須。MaxCompute がアクセスする Tablestore テーブルの列(プライマリキーおよび属性列)を指定します。コロン(:)で始まる列名は Tablestore のプライマリキーであることを示します。たとえば、:vid および :gt はプライマリキーです。その他の列は属性列です。マッピングを指定する際は、対象の Tablestore テーブルのすべてのプライマリキーを指定する必要があります。また、MaxCompute を使用してアクセスしたい属性列のみを指定できます。

(4)

tablestore.table.name

アクセス対象の Tablestore テーブルの名前です。指定したテーブルが存在しない場合、MaxCompute はエラーを報告します。MaxCompute は Tablestore テーブルを自動的に作成しません。

(5)

LOCATION

アクセス対象の Tablestore インスタンスに関する情報を指定します。インスタンス名およびエンドポイントを含みます。

ステップ 3:外部テーブルを用いたデータアクセス

重要

高同時実行数により Tablestore インスタンスの負荷が増加し、オンラインサービスのレイテンシーが高くなるだけでなく、リクエスト失敗を引き起こす可能性があります。並列度は set odps.sql.mapper.split.size=256 を設定することで調整できます。値を大きくすると同時実行数が減少し、小さくすると増加します。詳細については、「SQL のチューニング」をご参照ください。

外部テーブルが作成されると、Tablestore のデータが MaxCompute エコシステムで利用可能になります。MaxCompute SQL コマンドを使用してデータにアクセスできます。

-- タイムスタンプ 1469171387 より前の、VID が 4 未満の車両の平均速度および燃料消費量を計算します。
select vid,count(*),avg(speed),avg(oil_consumption) from ots_vehicle_track where vid <4 and gt<1469171387  group by vid;

実行結果の例:

odps1