Tous les produits
Search
Centre de documentation

MaxCompute:SEQUENCEFILE external tables

Dernière mise à jour :Aug 10, 2026

Les tables externes SequenceFile permettent d'interroger et d'écrire des données stockées au format Hadoop SequenceFile sur Object Storage Service (OSS) directement depuis MaxCompute, sans chargement préalable des données dans MaxCompute. Cette fonctionnalité est utile pour accéder à des charges de travail Hadoop ou Hive existantes depuis MaxCompute, ou pour partager des données entre différents systèmes.

Limitations

Limitation

Détails

Propriété cluster

Non prise en charge. N'incluez pas la propriété cluster lors de la création d'une table externe SequenceFile.

Taille d'un fichier unique

Ne doit pas dépasser 2 Go. Divisez les fichiers supérieurs à 2 Go avant de les référencer dans une table externe.

Région

MaxCompute et OSS doivent se trouver dans la même région.

Types de données pris en charge

Les types de données MaxCompute suivants sont pris en charge pour les tables externes SequenceFile. Pour la spécification complète des types, consultez les rubriques Types de données (version 1.0) et Types de données (version 2.0).

Type de données

Pris en charge

Type de données

Pris en charge

TINYINT

Oui

STRING

Oui

SMALLINT

Oui

DATE

Oui

INT

Oui

DATETIME

Oui

BIGINT

Oui

TIMESTAMP

Oui

BINARY

Oui

TIMESTAMP_NTZ

Oui

FLOAT

Oui

BOOLEAN

Oui

DOUBLE

Oui

ARRAY

Oui

DECIMAL(précision, échelle)

Oui

MAP

Oui

VARCHAR(n)

Oui

STRUCT

Oui

CHAR(n)

Oui

JSON

Oui

Créer une table externe

Syntaxe

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

Paramètres

Paramètre

Obligatoire

Description

mc_oss_extable_name

Oui

Nom de la table externe dans MaxCompute.

col_name data_type

Oui

Définitions des colonnes. Tous les types de données pris en charge sont répertoriés dans le tableau ci-dessus.

COMMENT table_comment

Non

Description facultative de la table.

PARTITIONED BY

Non

Définit les colonnes de partition. Si les données OSS sont organisées selon des partitions de style Hive (par exemple, dt=20250521/), ajoutez ici une colonne de partition correspondante.

STORED AS sequencefile

Oui

Spécifie le format de stockage SequenceFile.

LOCATION

Oui

Chemin OSS où sont stockées les données SequenceFile, au format oss://<endpoint>/<path>/.

Pour une référence complète des paramètres, consultez la rubrique Paramètres de syntaxe de base.

Écrire des données

Pour connaître la syntaxe d'écriture des données de MaxCompute vers OSS, consultez la rubrique Écrire des données dans OSS.

Interroger et analyser les données

Exemple : créer, interroger et écrire dans une table externe SequenceFile

Cet exemple détaille la création d'une table externe SequenceFile partitionnée, le chargement d'un jeu de données test depuis OSS, l'interrogation 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), vous pouvez utiliser une seule instruction pour lire et écrire dans les tables tout en utilisant les UDF. Vous pouvez également créer le dossier manuellement dans la console OSS avant d'exécuter les instructions ci-dessous.

Étape 1 : Télécharger les données de test

Connectez-vous à la console OSS et téléchargez le fichier de test 20250611TableSink dans le dossier external-table-test/sequence/dt=20250521/ de votre compartiment OSS. Pour obtenir des instructions de téléchargement, consultez la rubrique Télécharger des fichiers dans OSS.

Étape 2 : Créer la table externe

Créez une table externe SequenceFile partitionnée pointant vers le chemin OSS où sont stockées les données de test.

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

Étape 3 : Importer les données de partition

Étant donné que la table est partitionnée, exécutez la commande MSCK REPAIR TABLE afin de détecter et d'enregistrer les partitions déjà présentes dans OSS.

MSCK REPAIR TABLE mc_oss_extable_name_sequencefile1_pt ADD PARTITIONS;

Étape 4 : Interroger les données

SELECT * FROM mc_oss_extable_name_sequencefile1_pt WHERE dt=20250521;

La requête renvoie 11 lignes du jeu de données de test :

+------------+------------+------------+------------+------------------+-------------------+------------+------------+------------+
| 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 : Écrire des données

Insérez une nouvelle ligne dans la partition.

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

Étape 6 : Vérifier l'écriture

Interrogez la ligne que vous venez d'insérer pour confirmer qu'elle a été écrite correctement.

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

Résultat attendu :

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

Étapes suivantes

  • Pour savoir comment les tables externes fonctionnent avec les fonctions définies par l'utilisateur (UDF), consultez la rubrique Paramètres de syntaxe de base.

  • Pour optimiser les performances des requêtes sur de grands jeux de données SequenceFile, consultez la rubrique Optimisation des requêtes.