Todos os produtos
Search
Central de documentação

MaxCompute:Tabelas externas RCFile

Última atualização: Jun 27, 2026

Utilize tabelas externas RCFile para consultar e gravar dados no formato RCFile no Object Storage Service (OSS) sem mover os dados para o MaxCompute. O OSS gerencia o armazenamento, enquanto o MaxCompute cuida do schema e da execução das consultas.

Restrições

Restrição

Detalhe

Propriedade de cluster

Não suportada para tabelas externas do OSS

Limite de tamanho de arquivo

2 GB por arquivo. Divida arquivos maiores que 2 GB antes de referenciá-los.

Região

O MaxCompute e o OSS devem estar na mesma região

Tipos de dados suportados

Para obter a lista completa de tipos de dados do MaxCompute, consulte Tipos de dados (Versão 1.0) e Tipos de dados (Versão 2.0).

Tipo de dado

Suporte

Tipo de dado

Suporte

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

Crie uma tabela externa

Sintaxe

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

Para descrições dos parâmetros, consulte Parâmetros de sintaxe básica.

Grave dados

Para a sintaxe de gravação, consulte Gravar dados no OSS.

Consulta e análise

Exemplo de ponta a ponta

Este exemplo crie uma tabela externa RCFile particionada, sincroniza metadados de partição do OSS, consulta dados e grava um novo registro.

Pré-requisitos

Antes de começar, certifique-se de ter:

Etapa 1: Faça upload dos dados de teste

Faça login no console do OSS e envie o arquivo de dados RCFile para a pasta oss-mc-test/Rcfile/dt=20241223/. Consulte Fazer upload de arquivos para o OSS.

Etapa 2: Crie uma tabela externa 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/';

Etapa 3: Sincronize os metadados da partição

Para tabelas externas particionadas, sincronize os metadados da partição do OSS para o MaxCompute após o upload dos dados:

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

Para a sintaxe completa, consulte Sintaxe para adicionar dados de partição a uma tabela externa do OSS.

Etapa 4: Consulte a tabela externa

SELECT * FROM mc_oss_rcfile_extable2_pt WHERE dt=20241223;

Resultado esperado:

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

Etapa 5: Grave dados

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

Etapa 6: Verifique a gravação

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

Resultado esperado:

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