Tüm Ürünler
Search
Belge Merkezi

MaxCompute:SEQUENCEFILE external tables

Son Güncelleme:Oct 04, 2026

SequenceFile harici tablolar, Hadoop SequenceFile biçiminde Object Storage Service (OSS) üzerinde depolanan verileri önceden MaxCompute'e yüklemeden doğrudan sorgulamanıza ve yazmanıza olanak tanır. Bu özellik, mevcut Hadoop veya Hive iş yüklerinizi MaxCompute üzerinden erişmek istediğinizde veya sistemler arasında veri paylaşmanız gerektiğinde kullanışlıdır.

Sınırlamalar


Sınırlama


Ayrıntılar


cluster özelliği


Desteklenmez. Bir SequenceFile harici tablosu oluştururken cluster özelliğini dahil etmeyin.


Tek dosya boyutu


2 GB'ı aşamaz. Harici bir tabloda başvurmadan önce 2 GB'den büyük dosyaları bölün.


Bölge


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

Desteklenen veri türleri

SequenceFile harici tablolar için aşağıdaki MaxCompute veri türleri desteklenir. Tam tür belirtimi için bkz. Veri türleri (Sürüm 1,0) ve Veri türleri (Sürüm 2,0).


Veri türü


Destekleniyor


Veri türü


Destekleniyor


TINYINT


Evet


STRING


Evet


SMALLINT


Evet


DATE


Evet


INT


Evet


DATETIME


Evet


BIGINT


Evet


TIMESTAMP


Evet


BINARY


Evet


TIMESTAMP_NTZ


Evet


FLOAT


Evet


BOOLEAN


Evet


DOUBLE


Evet


ARRAY


Evet


DECIMAL(hassasiyet,ölçek)


Evet


MAP


Evet


VARCHAR(n)


Evet


STRUCT


Evet


CHAR(n)


Evet


JSON


Evet

Harici tablo oluşturun

Söz dizimi

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

Parametreler


Parametre


Gerekli


Açıklama


mc_oss_extable_name


Evet


MaxCompute'deki harici tablonun adı.


col_name data_type


Evet


Sütun tanımları. Desteklenen tüm veri türleri yukarıdaki tabloda listelenmiştir.


COMMENT table_comment


Hayır


Tablo için isteğe bağlı bir açıklama.


PARTITIONED BY


Hayır


Bölüm sütunlarını tanımlar. OSS verileri Hive tarzı bölümlere ayrılmışsa (örneğin, dt=20250521/), buraya eşleşen bir bölüm sütunu ekleyin.


STORED AS sequencefile


Evet


SequenceFile depolama biçimini belirtir.


LOCATION


Evet


SequenceFile verilerinin depolandığı OSS yolu, oss://<endpoint>/<path>/ biçimindedir.

Tam parametre referansı için bkz. Temel söz dizimi parametreleri.

Veri yazın

Verileri MaxCompute'ten OSS'ye yazma söz dizimi için bkz. OSS'ye veri yazma.

Verileri sorgulayın ve analiz edin

Örnek: Bir SequenceFile harici tablosu oluşturma, sorgulama ve yazma

Bu örnek, bölümlendirilmiş bir SequenceFile harici tablosu oluşturma, OSS'den bir test veri kümesi yükleme, verileri sorgulama ve yeni bir satır yazma sürecini adım adım gösterir.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

MaxCompute, OSS'de otomatik klasör oluşturmayı destekler. Bir SQL ifadesi harici tablolar ve kullanıcı tanımlı işlevleri (UDF'ler) içeriyorsa, tek bir ifade kullanarak tablolardan okuyabilir, tablolara yazabilir ve UDF'leri kullanabilirsiniz. Ayrıca, aşağıdaki ifadeleri çalıştırmadan önce klasörü OSS konsolunda manuel olarak da oluşturabilirsiniz.

Adım 1: Test verilerini yükleyin

OSS konsoluna giriş yapın ve 20250611TableSink test dosyasını OSS paketinizdeki external-table-test/sequence/dt=20250521/ klasörüne yükleyin. Yükleme talimatları için bkz. OSS'ye dosya yükleme.

Adım 2: Harici tabloyu oluşturun

Test verilerinin depolandığı OSS yolunu işaret eden bölümlendirilmiş bir SequenceFile harici tablosu oluşturun.

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

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

Tablo bölümlendirildiğinden, OSS'de zaten mevcut olan bölümleri algılamak ve kaydetmek için MSCK REPAIR TABLE komutunu çalıştırın.

MSCK REPAIR TABLE mc_oss_extable_name_sequencefile1_pt ADD PARTITIONS;

Adım 4: Verileri sorgulayın

SELECT * FROM mc_oss_extable_name_sequencefile1_pt WHERE dt=20250521;

Sorgu, test veri kümesinden 11 satır döndürü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: Veri yazın

Bölüme yeni bir satır ekleyin.

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

Adım 6: Yazmayı doğrulayın

Doğru şekilde yazıldığını onaylamak için az önce eklediğiniz satırı sorgulayın.

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

Beklenen çıktı:

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

Sonraki adımlar

  • Harici tabloların kullanıcı tanımlı işlevlerle (UDF'ler) nasıl çalıştığını öğrenmek için bkz. Temel söz dizimi parametreleri.

  • Büyük SequenceFile veri kümelerinde sorgu performansını optimize etmek için bkz. Sorgu optimizasyonu.