Todos os produtos
Search
Central de documentação

MaxCompute:Use SQL statements to manage an external project

Última atualização: Jun 26, 2026

Após criar um projeto externo na configuração do data lakehouse, use instruções SQL para consultar e modificar dados armazenados no Data Lake Formation (DLF) e no Object Storage Service (OSS), ou em um cluster Hadoop externo, sem sair do ambiente SQL do MaxCompute.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um projeto externo criado na página Lake and Warehouse Integration (Data Lakehouse) no console do DataWorks

  • Acesso ao cliente do MaxCompute

Importante

Execute todas as instruções SQL no projeto do MaxCompute ao qual o projeto externo está mapeado, e não no próprio projeto externo. Não é possível executar jobs diretamente em um projeto externo.

Ao referenciar uma tabela em um projeto externo, use o formato external_project_name.table_name.

Persista parâmetros de sessão

Muitas operações exigem comandos SET. Para evitar repeti-los a cada sessão, adicione-os ao arquivo odps_config.ini no diretório de instalação do cliente MaxCompute. O sistema aplica os parâmetros desse arquivo automaticamente na inicialização.

Gerencie um projeto externo baseado em DLF e OSS

Não é possível criar tabelas diretamente em um projeto externo. Crie todas as tabelas no projeto do MaxCompute mapeado.

Insira dados

Tabela não particionada:

-- Switch to the MaxCompute project mapped to the external project.
use doc_test_prod;

-- Insert a row into a non-partitioned table.
insert into table ext_mcdlf_ddl.ddl_test values(1,"ddl_test_1");

Tabela particionada:

-- Switch to the MaxCompute project mapped to the external project.
use doc_test_prod;

-- Insert rows into a specific partition.
insert overwrite table ext_mcdlf_ddl.range_ptstring_ptint partition (pt1 = 'ds1', pt2=2) values (4, 'val4'), (5, 'val5');

Visualize informações da tabela

-- Switch to the MaxCompute project mapped to the external project.
use doc_test_prod;

-- List all tables in the external project.
show tables in doc_test_prod;

-- View the schema of a specific table.
desc extended ext_mcdlf_ddl.ddl_test;

Consulte dados da tabela

-- Switch to the MaxCompute project mapped to the external project.
use doc_test_prod;

-- Query a non-partitioned table.
select * from ext_mcdlf_ddl.ddl_test limit 10;

-- Query a partitioned table with a partition filter.
select * from ext_mcdlf_ddl.range_ptstring_ptint where pt1='ds1';

Parâmetros especiais para DLF + OSS

Alguns cenários exigem parâmetros de sessão adicionais antes da execução das instruções SQL:

-- Required if the Optimized Row Columnar (ORC) version is later than ORC-135.
set odps.ext.oss.orc.native=true;

-- Required to enable Hive-compatible data types.
-- MaxCompute supports Hive syntax only after you enable this setting.
set odps.sql.hive.compatible=true;

-- Enable multipart upload for the current session.
set odps.sql.unstructured.oss.commit.mode=true;

-- Enable multipart upload for the entire project.
setproject odps.sql.unstructured.oss.commit.mode=true;

Para mais informações, consulte Operações de tabela, INSERT INTO e INSERT OVERWRITE e Upload multipart.

Gerencie um projeto externo baseado em uma fonte de dados Hadoop externa

Use as instruções a seguir para consultar dados de tabelas Hive de uma fonte de dados Hadoop externa.

-- Switch to the MaxCompute project mapped to the external project.
use <main_project_name>;

-- Enable Hive-compatible mode.
-- Required for E-MapReduce (EMR) tables; not required for MaxCompute tables.
set odps.sql.hive.compatible=true;

-- Optional: specify the username used to access the Hadoop data source.
set odps.external.hadoop.user=<hadoop_name>;

-- Query data from the Hive table.
select * from <my_hive_table> limit 10;
Nota

O sistema não oferece suporte a instruções DDL em tabelas Hadoop externas, exceto para adicionar e remover partições. Para obter a lista completa da sintaxe DDL compatível, consulte Visão geral do SQL do MaxCompute.

Crie uma tabela com o mesmo esquema de uma tabela externa

Use CREATE TABLE...LIKE para criar uma tabela do MaxCompute com o mesmo esquema de uma tabela na fonte de dados externa. A nova tabela copia os nomes das colunas, os comentários das colunas e os comentários da tabela de origem, mas não copia a configuração de ciclo de vida nem os dados.

-- Create a MaxCompute table with the same schema as external_project.testtbl.
create table from_exe_tbl like external_project.testtbl;

-- Verify the schema was copied correctly.
desc from_exe_tbl;

-- Query the new table (it starts empty; data is not copied from the source).
SELECT * from from_exe_tbl;

Para obter mais detalhes sobre a sintaxe e as opções de CREATE TABLE...LIKE, consulte Operações de tabela.

Próximos passos

Para conceder acesso a outros usuários em um projeto externo ou nas respectivas tabelas, consulte Conceder permissões de projeto externo a outros usuários.