全部产品
Search
文档中心

MaxCompute:Tabel eksternal SEQUENCEFILE

更新时间:Jan 01, 2026

Topik ini menjelaskan cara membuat, membaca dari, dan menulis ke tabel eksternal OSS dalam format SEQUENCEFILE.

Cakupan

  • Tabel eksternal OSS tidak mendukung properti cluster.

  • Ukuran satu file tidak boleh melebihi 2 GB. Jika ukuran file terlalu besar, lakukan pemisahan.

  • MaxCompute dan OSS harus berada di wilayah yang sama.

Tipe data yang didukung

Untuk informasi selengkapnya mengenai tipe data MaxCompute, lihat Tipe data (Versi 1.0) dan Tipe data (Versi 2.0).

Tipe data

Dukungan

Tipe data

Dukungan

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

未开通

Buat tabel eksternal

Sintaks

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>';

Parameter

Untuk informasi selengkapnya, lihat Parameter sintaks dasar.

Tulis data

Untuk informasi selengkapnya mengenai sintaks penulisan data dari MaxCompute ke OSS, lihat Tulis data ke OSS.

Kueri dan analisis data

  • Untuk informasi selengkapnya mengenai sintaks SELECT, lihat Baca data dari OSS.

  • Untuk informasi selengkapnya mengenai pengoptimalan rencana kueri, lihat Optimasi kueri.

Contoh

Contoh ini menunjukkan cara menggunakan parser data open-source bawaan untuk membuat tabel eksternal SEQUENCEFILE, menulis data ke OSS, dan melakukan kueri terhadap data tersebut.

  1. Prasyarat

    • Proyek MaxCompute telah dibuat.

    • Bucket OSS dan folder tersedia. Untuk informasi selengkapnya, lihat Buat bucket dan Kelola folder.

      MaxCompute mendukung pembuatan folder otomatis di OSS. Jika suatu pernyataan SQL melibatkan tabel eksternal dan user-defined function (UDF), Anda dapat menggunakan satu pernyataan untuk membaca dan menulis ke tabel sekaligus menggunakan UDF tersebut. Folder juga dapat dibuat secara manual.

      MaxCompute hanya dideploy di wilayah tertentu. Untuk menghindari potensi masalah koneksi data lintas wilayah, pastikan bucket OSS Anda berada di wilayah yang sama dengan proyek MaxCompute Anda.
    • Otorisasi

      • Anda harus memiliki izin untuk mengakses OSS. Anda dapat menggunakan Akun Alibaba Cloud, Pengguna Resource Access Management (RAM), atau Peran RAM untuk mengakses tabel eksternal OSS. Untuk informasi selengkapnya mengenai otorisasi, lihat Otorisasi akses dalam mode STS untuk OSS.

      • Anda harus memiliki izin CreateTable di proyek MaxCompute. Untuk informasi selengkapnya mengenai izin tabel, lihat Izin MaxCompute.

  2. Unggah data uji

    Masuk ke Konsol OSS dan unggah file data uji 20250611TableSink ke folder external-table-test/sequence/dt=20250521/ di bucket OSS Anda. Untuk informasi selengkapnya, lihat Unggah file ke OSS.

  3. Buat tabel 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. Impor data partisi. Jika tabel eksternal OSS yang dibuat merupakan tabel partisi, Anda harus menjalankan perintah tambahan untuk mengimpor data partisi. Untuk informasi selengkapnya, lihat Sintaks untuk menambahkan data partisi ke tabel eksternal OSS.

    -- Impor data partisi.
    MSCK REPAIR TABLE mc_oss_extable_name_sequencefile1_pt ADD PARTITIONS;
  5. Baca data dari tabel SEQUENCEFILE.

    SELECT * FROM mc_oss_extable_name_sequencefile1_pt WHERE dt=20250521;

    Hasil berikut dikembalikan:

    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
    | 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. Tulis data ke tabel 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. Lihat data yang ditulis.

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

    Hasil berikut dikembalikan:

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