Tous les produits
Search
Centre de documentation

MaxCompute:RCFile external tables

Dernière mise à jour :Aug 10, 2026

Utilisez les tables externes RCFile pour interroger et écrire des données au format RCFile dans Object Storage Service (OSS) sans déplacer les données vers MaxCompute. OSS gère le stockage ; MaxCompute gère le schéma et l'exécution des requêtes.

Contraintes

Contrainte

Détail

Propriété de cluster

Non prise en charge pour les tables externes OSS

Limite de taille de fichier

2 Go par fichier. Fractionnez les fichiers de plus de 2 Go avant de les référencer.

Région

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

Types de données pris en charge

Pour la liste complète des types de données MaxCompute, consultez les rubriques Types de données (version 1.0) et Types de données (version 2.0).

Type de données

Prise en charge

Type de données

Prise en charge

TINYINT

Enabled

STRING

Activated

SMALLINT

Enabled

DATE

Enabled

INT

Activated

DATETIME

Enabled

BIGINT

Activated

TIMESTAMP

Enabled

BINARY

Activated

TIMESTAMP_NTZ

Enabled

FLOAT

Activated

BOOLEAN

Enabled

DOUBLE

Enabled

ARRAY

Enabled

DECIMAL(precision, scale)

Activated

MAP

Enabled

VARCHAR(n)

Enabled

STRUCT

Enabled

CHAR(n)

Activated

JSON

Not enabled

Créer une table externe

Syntaxe

CREATE EXTERNAL TABLE [IF NOT EXISTS] mc_oss_rcfile_extable
(
  <col_name> <data_type>,
  ...
)
[COMMENT <table_comment>]
[PARTITIONED BY (<col_name> <data_type>, ...)]
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'
STORED AS rcfile
LOCATION 'oss_location';

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

Écrire des données

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

Interrogation et analyse

Exemple de bout en bout

Cet exemple crée une table externe RCFile partitionnée, synchronise les métadonnées de partition depuis OSS, interroge les données et écrit un nouvel enregistrement.

Prérequis

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

  • Un projet MaxCompute. Consultez la rubrique Créer un projet MaxCompute.

  • Un bucket OSS situé dans la même région que votre projet MaxCompute. Consultez les rubriques Créer un bucket et Gérer les dossiers. MaxCompute peut créer automatiquement des dossiers OSS ; il n'est pas nécessaire de les créer avant d'exécuter du code SQL.

  • Des autorisations d'accès à OSS via un compte Alibaba Cloud, un utilisateur Resource Access Management (RAM) ou un rôle RAM. Consultez la rubrique Autoriser l'accès en mode STS pour OSS.

  • L'autorisation CreateTable dans votre projet MaxCompute. Consultez la rubrique Autorisations MaxCompute.

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

Connectez-vous à la console OSS et téléchargez le fichier de données RCFile dans le dossier oss-mc-test/Rcfile/dt=20241223/. Consultez la rubrique Télécharger des fichiers dans OSS.

Étape 2 : Créer une table externe RCFile

CREATE EXTERNAL TABLE mc_oss_rcfile_extable
(
  vehicleId STRING,
  recordId STRING,
  patientId STRING,
  calls STRING,
  locationLatitute STRING,
  locationLongtitue STRING,
  recordTime STRING,
  direction STRING
)
PARTITIONED BY (dt STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'
STORED AS rcfile
LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/oss-mc-test/Rcfile/';

Étape 3 : Synchroniser les métadonnées de partition

Pour les tables externes partitionnées, synchronisez les métadonnées de partition depuis OSS vers MaxCompute après le téléchargement des données :

-- Import partition data.
MSCK REPAIR TABLE mc_oss_rcfile_extable ADD PARTITIONS;

Pour la syntaxe complète, consultez la rubrique Syntaxe d'ajout de données de partition à une table externe OSS.

Étape 4 : Interroger la table externe

SELECT * FROM mc_oss_rcfile_extable2_pt WHERE dt=20241223;

Résultat attendu :

+------------+------------+------------+------------+------------------+-------------------+------------------+------------+------------+
| vehicleid  | recordid   | patientid  | calls      | locationlatitute | locationlongtitue | recordtime       | direction  | dt         |
+------------+------------+------------+------------+------------------+-------------------+------------------+------------+------------+
| 1          | 1          | 7          | 1          | 39.995353        | 116.410101        | 2025/12/23 10:01 | NW         | 20241223   |
| 1          | 2          | 15         | 1          | 39.996123        | 116.412345        | 2025/12/24 10:01 | NE         | 20241223   |
| 2          | 3          | 22         | 2          | 40.001234        | 116.425678        | 2025/12/25 10:01 | SE         | 20241223   |
| 1          | 4          | 71         | 1          | 39.998888        | 106.419999        | 2025/12/26 10:01 | NW         | 20241223   |
| 3          | 5          | 50         | 1          | 29.989999        | 116.401111        | 2025/12/27 10:01 | NE         | 20241223   |
| 2          | 6          | 28         | 3          | 40.003456        | 110.42891         | 2025/12/28 10:01 | NW         | 20241223   |
| 4          | 7          | 20         | 2          | 39.991234        | 116.435555        | 2025/12/29 10:01 | NE         | 20241223   |
| 1          | 8          | 13         | 1          | 39.994567        | 116.41789         | 2025/12/30 10:01 | SE         | 20241223   |
+------------+------------+------------+------------+------------------+-------------------+------------------+------------+------------+

Étape 5 : Écrire des données

INSERT INTO TABLE mc_oss_rcfile_extable2_pt PARTITION (dt=20251223) VALUES ('1','13','76','1','46.81006','-92.08174','9/14/2014 0:10','SW');

Étape 6 : Vérifier l'écriture

SELECT * FROM mc_oss_rcfile_extable2_pt WHERE dt=20250521 AND recordId='13';

Résultat attendu :

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