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

MaxCompute:SEQUENCEFILE external tables

最終更新日:Jan 01, 2026

本トピックでは、SEQUENCEFILE フォーマットの OSS 外部テーブルを作成、読み取り、書き込みする方法について説明します。

適用範囲

  • OSS 外部テーブルはクラスタープロパティをサポートしていません。

  • 単一ファイルのサイズは 2 GB を超えることはできません。ファイルが大きすぎる場合は、分割してください。

  • MaxCompute と OSS は同じリージョンにある必要があります。

サポートされるデータの型

MaxCompute のデータの型の詳細については、データの型 (V1.0) および データの型 (V2.0) をご参照ください。

データの型

サポート

データの型

サポート

TINYINT

有効化済み

STRING

有効

SMALLINT

有効

DATE

有効化済み

INT

有効化済み

DATETIME

開通済み

BIGINT

有効

TIMESTAMP

有効

BINARY

有効化済み

TIMESTAMP_NTZ

有効

FLOAT

有効化済み

BOOLEAN

有効

DOUBLE

有効化済み

ARRAY

有効

DECIMAL(precision,scale)

有効化済み

MAP

有効化済み

VARCHAR(n)

有効

STRUCT

有効化済み

CHAR(n)

有効化済み

JSON

未開通

外部テーブルの作成

構文

CREATE EXTERNAL TABLE [IF NOT EXISTS] <mc_oss_extable_name>
(
  <col_name> <data_type>,
  ...
)
[COMMENT <table_comment>]
[PARTITIONED BY (<col_name> <data_type>)]
STORED AS sequencefile
LOCATION '<oss_location>';

パラメーター

詳細については、「基本的な構文パラメーター」をご参照ください。

データの書き込み

MaxCompute から OSS にデータを書き込む構文の詳細については、「OSS へのデータの書き込み」をご参照ください。

データのクエリと分析

この例では、組み込みのオープンソースデータパーサを使用して SEQUENCEFILE 形式の外部テーブルを作成し、OSS にデータを書き込み、そのデータをクエリする方法を示します。

  1. 前提条件

    • MaxCompute プロジェクトが作成されていること

    • OSS バケットとフォルダが利用可能であること。詳細については、「バケットの作成」および「フォルダの管理」をご参照ください。

      MaxCompute は OSS でのフォルダの自動作成をサポートしています。SQL 文に外部テーブルとユーザー定義関数 (UDF) が含まれている場合、単一の文を使用してテーブルの読み書きと UDF の使用が可能です。フォルダは手動で作成することもできます。

      MaxCompute は特定のリージョンにのみデプロイされます。リージョン間のデータ接続に関する潜在的な問題を回避するため、ご利用の OSS バケットがご利用の MaxCompute プロジェクトと同じリージョンにあることを確認してください。
    • 権限付与

      • OSS にアクセスするための権限が必要です。Alibaba Cloud アカウント、Resource Access Management (RAM) ユーザー、または RAM ロールを使用して OSS 外部テーブルにアクセスできます。権限付与の詳細については、「STS モードでの OSS へのアクセス権限付与」をご参照ください。

      • MaxCompute プロジェクトで `CreateTable` 権限が必要です。テーブル権限の詳細については、「MaxCompute の権限」をご参照ください。

  2. テストデータのアップロード

    OSS コンソールにログインし、テストデータファイル 20250611TableSink をご利用の OSS バケットの external-table-test/sequence/dt=20250521/ フォルダにアップロードします。詳細については、「OSS へのファイルのアップロード」をご参照ください。

  3. SEQUENCEFILE テーブルの作成

    CREATE EXTERNAL TABLE  mc_oss_extable_name_sequencefile1_pt 
    (
      vehicleId STRING ,
      recordId STRING,
      patientId STRING,
      calls STRING,
      locationLatitute STRING,
      locationLongtitue STRING,
      recordTime string,
      direction string
    )
    PARTITIONED BY (dt STRING) 
    STORED AS sequencefile 
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/external-table-test/sequence/';
  4. パーティションデータのインポート。作成した OSS 外部テーブルがパーティションテーブルの場合、追加のコマンドを実行してパーティションデータをインポートする必要があります。詳細については、「OSS 外部テーブルにパーティションデータを追加するための構文」をご参照ください。

    -- パーティションデータをインポートします。
    MSCK REPAIR TABLE mc_oss_extable_name_sequencefile1_pt ADD PARTITIONS;
  5. SEQUENCEFILE テーブルからのデータの読み取り

    SELECT * FROM mc_oss_extable_name_sequencefile1_pt WHERE dt=20250521;

    次の結果が返されます:

    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
    | vehicleid  | recordid   | patientid  | calls      | locationlatitute | locationlongtitue | recordtime | direction  | dt         |
    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
    | 1          | 12         | 76         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:10 | SW         | 20250521   |
    | 1          | 1          | 51         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:00 | S          | 20250521   |
    | 1          | 2          | 13         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:01 | NE         | 20250521   |
    | 1          | 3          | 48         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:02 | NE         | 20250521   |
    | 1          | 4          | 30         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:03 | W          | 20250521   |
    | 1          | 5          | 47         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:04 | S          | 20250521   |
    | 1          | 6          | 9          | 1          | 46.81006         | -92.08174         | 9/14/2014 0:05 | S          | 20250521   |
    | 1          | 7          | 53         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:06 | N          | 20250521   |
    | 1          | 8          | 63         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:07 | SW         | 20250521   |
    | 1          | 9          | 4          | 1          | 46.81006         | -92.08174         | 9/14/2014 0:08 | NE         | 20250521   |
    | 1          | 10         | 31         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:09 | N          | 20250521   |
    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
  6. SEQUENCEFILE テーブルへのデータの書き込み

    INSERT INTO mc_oss_extable_name_sequencefile1_pt PARTITION (dt='20250521') 
    VALUES 
    ('1','16','76','1','46.81006','-92.08174','9/14/2014 0:10','SW');
  7. 書き込まれたデータの表示

    SELECT * FROM mc_oss_extable_name_sequencefile1_pt WHERE dt=20250521 AND recordId='16';

    次の結果が返されます:

    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
    | vehicleid  | recordid   | patientid  | calls      | locationlatitute | locationlongtitue | recordtime | direction  | dt         |
    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
    | 1          | 16         | 76         | 1          | 46.81006         | -92.08174         | 9/14/2014 0:10 | SW         | 20250521   |
    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+