全部产品
Search
文档中心

MaxCompute:Tabel eksternal AVRO

更新时间:Jan 01, 2026

Topik ini menjelaskan cara membuat, membaca dari, dan menulis ke tabel eksternal berformat AVRO di OSS.

Lingkup

  • Tabel eksternal OSS tidak mendukung properti cluster.

  • Ukuran satu file tidak boleh melebihi 2 GB. Jika 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 Data types (V1.0) dan Data types (V2.0).

Tipe data

Dukungan

Tipe data

Didukung

TINYINT

Not enabled

STRING

Enabled

SMALLINT

Not activated

DATE

Not enabled

INT

Enabled

DATETIME

Not enabled

BIGINT

Not enabled

TIMESTAMP

Not enabled

BINARY

Not enabled

TIMESTAMP_NTZ

Not enabled

FLOAT

Activated

BOOLEAN

Enabled

DOUBLE

Enabled

ARRAY

Enabled

DECIMAL(precision,scale)

Not enabled

MAP

Enabled

VARCHAR(n)

Not enabled

STRUCT

Not enabled

CHAR(n)

Not enabled

JSON

Not enabled

Buat tabel eksternal

Sintaks

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

Parameter

Untuk informasi lebih lanjut, lihat Basic syntax parameters.

Tulis data

Untuk informasi lebih lanjut mengenai sintaks penulisan data dari MaxCompute ke OSS, lihat Write data to OSS.

Kueri dan analisis

Contoh

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

  1. Prasyarat

    • Proyek MaxCompute telah dibuat.

    • Bucket OSS dan folder tersedia. Untuk informasi lebih lanjut, lihat Create a bucket dan Manage folders.

      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 serta menggunakan UDF tersebut. Anda juga dapat membuat folder secara manual.

      MaxCompute hanya dideploy di wilayah tertentu. Untuk menghindari potensi masalah koneksi data cross-region, 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 lebih lanjut mengenai otorisasi, lihat Authorize access in STS mode for OSS.

      • Anda harus memiliki izin CreateTable di proyek MaxCompute. Untuk informasi lebih lanjut mengenai izin tabel, lihat MaxCompute permissions.

  2. Unggah data uji

    Masuk ke Konsol OSS dan unggah file data uji 20250612TableSink ke folder external-table-test/avro/dt=20250521/ di bucket OSS Anda. Untuk informasi lebih lanjut, lihat Upload files.

  3. Buat tabel eksternal berformat AVRO

    CREATE EXTERNAL TABLE mc_oss_extable_name_avro_pt 
    (
      vehicleId STRING,
      recordId STRING,
      patientId STRING,
      calls STRING,
      locationLatitute STRING,
      locationLongtitue STRING,
      recordTime STRING,
      direction STRING
    ) 
    PARTITIONED BY (dt STRING) 
    STORED AS avro 
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/external-table-test/avro/';
  4. Impor data partisi. Jika tabel eksternal OSS merupakan tabel partisi, Anda harus mengimpor data partisinya. Untuk informasi lebih lanjut, lihat Syntax for adding partition data to an OSS foreign table.

    -- Impor data partisi.
    MSCK REPAIR TABLE mc_oss_extable_name_avro_pt ADD PARTITIONS;
  5. Baca data dari tabel eksternal AVRO

    SELECT * FROM mc_oss_extable_name_avro_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 eksternal AVRO

    INSERT INTO mc_oss_extable_name_avro_pt PARTITION (dt='20250521') VALUES ('1','16','76','1','46.81006','-92.08174','9/14/2014 0:10','SW');
  7. Lakukan kueri terhadap data yang ditulis

    SELECT * FROM mc_oss_extable_name_avro_pt WHERE dt=20250521;

    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   |
    | 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   |
    +------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+