Tous les produits
Search
Centre de documentation

MaxCompute:AVRO external tables

Dernière mise à jour :Aug 10, 2026

MaxCompute permet de lire et d'écrire des fichiers au format Avro stockés dans Object Storage Service (OSS) à l'aide de tables externes, sans déplacer les données vers le stockage interne de MaxCompute.

Les tables externes Avro vous permettent de :

  • Interroger directement les fichiers Avro dans OSS via SQL

  • Écrire les données de MaxCompute vers OSS au format Avro

  • Partitionner les données pour optimiser le filtrage des requêtes

  • Utiliser l'analyseur de données open source intégré, sans code de sérialisation personnalisé

Limitations

|
**Contrainte**
|
**Détail**
| | --- | --- | |
Propriété cluster
|
Les tables externes OSS ne prennent pas en charge la propriété cluster
| |
Taille de fichier unique
|
2 Go maximum. Fractionnez les fichiers dépassant 2 Go avant de créer la table externe
| |
Région
|
MaxCompute et OSS doivent se trouver dans la même région
|















Types de données pris en charge

Le tableau suivant répertorie les types de données MaxCompute pris en charge pour les tables externes Avro. Pour la référence complète des types, consultez Types de données (V1.0) et Types de données (V2.0).

|
**Type de données**
|
**Pris en charge**
| | --- | --- | |
STRING
|
Oui
| |
INT
|
Oui
| |
FLOAT
|
Oui
| |
DOUBLE
|
Oui
| |
BOOLEAN
|
Oui
| |
ARRAY
|
Oui
| |
MAP
|
Oui
| |
TINYINT
|
Non
| |
SMALLINT
|
Non
| |
BIGINT
|
Non
| |
BINARY
|
Non
| |
DECIMAL(precision,scale)
|
Non
| |
VARCHAR(n)
|
Non
| |
CHAR(n)
|
Non
| |
DATE
|
Non
| |
DATETIME
|
Non
| |
TIMESTAMP
|
Non
| |
TIMESTAMP_NTZ
|
Non
| |
STRUCT
|
Non
| |
JSON
|
Non
|



















































































Création d'une table externe Avro

Syntaxe

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

Paramètres

Pour la description des paramètres, consultez Paramètres de la syntaxe de base.

Écriture des données

Pour la syntaxe d'écriture, consultez Écriture des données dans OSS.

Interrogation et analyse

Exemple : création, écriture et interrogation d'une table externe Avro

Cet exemple détaille la création d'une table externe Avro partitionnée, l'importation des métadonnées de partition, la lecture des données et l'insertion d'une nouvelle ligne.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

MaxCompute prend en charge la création automatique de dossiers dans OSS. Si une instruction SQL implique des tables externes et des fonctions définies par l'utilisateur (UDF), une seule instruction peut lire et écrire dans les tables tout en appliquant les UDF.

Étape 1 : Chargement des données de test

Connectez-vous à la console OSS et chargez le fichier de données de test 20250612TableSink dans le dossier external-table-test/avro/dt=20250521/ de votre bucket. Pour les instructions de chargement, consultez Chargement de fichiers.

Étape 2 : Création d'une table externe 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/';

Étape 3 : Importation des métadonnées de partition

Pour les tables externes partitionnées, exécutez MSCK REPAIR TABLE afin d'enregistrer les partitions OSS existantes dans MaxCompute :

MSCK REPAIR TABLE mc_oss_extable_name_avro_pt ADD PARTITIONS;

Étape 4 : Lecture des données depuis la table externe Avro

SELECT * FROM mc_oss_extable_name_avro_pt WHERE dt=20250521;

Le résultat suivant est renvoyé :

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

Étape 5 : Écriture des données dans la table externe 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');

Étape 6 : Vérification des données écrites

SELECT * FROM mc_oss_extable_name_avro_pt WHERE dt=20250521;

Le résultat suivant est renvoyé, avec la ligne nouvellement insérée (recordId 16) en tête :

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