Tüm Ürünler
Search
Belge Merkezi

MaxCompute:AVRO external tables

Son Güncelleme:Oct 04, 2026

MaxCompute, verileri MaxCompute dahili depolamasına taşımadan harici tablolar aracılığıyla Object Storage Service (OSS) içinde saklanan Avro biçimli dosyalardan okuyabilir ve bu dosyalara yazabilir.

AVRO harici tablolar ile şunları yapabilirsiniz:

  • OSS içindeki Avro dosyalarını doğrudan SQL kullanarak sorgulayın

  • Verileri MaxCompute'den OSS'ye Avro biçiminde geri yazın

  • Daha verimli sorgu filtrelemesi için verileri bölümlere ayırın

  • Özel serileştirme kodu gerekmeden yerleşik açık kaynak veri ayrıştırıcısını kullanın

Sınırlamalar


Kısıtlama


Ayrıntı


Küme özelliği


OSS harici tablolar küme özelliğini desteklemez


Tek dosya boyutu


Maksimum 2 GB. Harici tabloyu oluşturmadan önce 2 GB'tan büyük dosyaları bölün


Bölge


MaxCompute ve OSS aynı bölgede olmalıdır

Desteklenen veri türleri

Aşağıdaki tabloda, AVRO harici tablolar için desteklenen MaxCompute veri türleri listelenmiştir. Tam tür referansı için bkz. Veri türleri (V1.0) ve Veri türleri (V2.0).


Veri türü


Destekleniyor mu?


STRING


Evet


INT


Evet


FLOAT


Evet


DOUBLE


Evet


BOOLEAN


Evet


ARRAY


Evet


MAP


Evet


TINYINT


Hayır


SMALLINT


Hayır


BIGINT


Hayır


BINARY


Hayır


DECIMAL(hassasiyet,ölçek)


Hayır


VARCHAR(n)


Hayır


CHAR(n)


Hayır


DATE


Hayır


DATETIME


Hayır


TIMESTAMP


Hayır


TIMESTAMP_NTZ


Hayır


STRUCT


Hayır


JSON


Hayır

AVRO harici tablo oluşturma

Söz dizimi

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

Parametreler

Parametre açıklamaları için bkz. Temel söz dizimi parametreleri.

Veri yazma

Yazma söz dizimi için bkz. OSS'ye veri yazma.

Sorgulama ve analiz

Örnek: AVRO harici tablo oluşturma, veri yazma ve sorgulama

Bu örnekte, bölümlendirilmiş bir AVRO harici tablo oluşturma, bölüm meta verilerini içeri aktarma, veri okuma ve yeni bir satır yazma adımları gösterilmektedir.

Önkoşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

MaxCompute, OSS'de otomatik klasör oluşturmayı destekler. Bir SQL deyimi harici tablolar ve kullanıcı tanımlı işlevleri (UDF'ler) içeriyorsa, tek bir deyim UDF'leri uygularken tablolardan okuma ve tablolara yazma işlemi gerçekleştirebilir.

Adım 1: Test verilerini yükleyin

OSS konsoluna giriş yapın ve test veri dosyası 20250612TableSink öğesini paketinizdeki external-table-test/avro/dt=20250521/ klasörüne yükleyin. Yükleme talimatları için bkz. Dosya yükleme.

Adım 2: AVRO harici tablo oluşturun

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

Adım 3: Bölüm meta verilerini içeri aktarın

Bölümlendirilmiş harici tablolar için, mevcut OSS bölümlerini MaxCompute'e kaydetmek üzere MSCK REPAIR TABLE komutunu çalıştırın:

MSCK REPAIR TABLE mc_oss_extable_name_avro_pt ADD PARTITIONS;

Adım 4: AVRO harici tablodan veri okuyun

SELECT * FROM mc_oss_extable_name_avro_pt WHERE dt=20250521;

Aşağıdaki sonuç döndürülür:

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

Adım 5: AVRO harici tabloya veri yazın

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

Adım 6: Yazılan verileri doğrulayın

SELECT * FROM mc_oss_extable_name_avro_pt WHERE dt=20250521;

Aşağıdaki sonuç döndürülür; yeni eklenen satır (recordId 16) en üstte yer alır:

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