As tabelas externas do MaxCompute permitem consultar e analisar dados armazenados em sistemas de armazenamento externos, como o OSS.
Como funciona
O MaxCompute SQL processa dados offline na escala de exabytes. Com a expansão das cargas de trabalho de big data, os dados residem cada vez mais em data lakes, data warehouses em tempo real, bancos de dados NoSQL e outros sistemas.
O MaxCompute suporta cenários de data warehouse e data lake por meio de sua arquitetura distribuída de armazenamento e computação. Existem dois modos disponíveis para processar dados externos:
-
Modo 1: Importar e depois computar
Importe os dados para o MaxCompute. Dados estruturados são armazenados como tabelas para consultas SQL ou acesso por engines de terceiros. Dados não estruturados também podem ser armazenados e processados no MaxCompute para obter maior eficiência de E/S.
-
Modo 2: Computar no local
Utilize o MaxCompute SQL como engine de computação para consultar dados diretamente no armazenamento externo, como um data lake.
O MaxCompute oferece uma governança robusta de data warehouse e integra-se a sistemas de armazenamento externos. As tabelas externas são o principal mecanismo para acessar dados externos.
-
Definição e mecanismo
Uma instrução DDL define o nome da tabela, schema, propriedades, permissões, localização e protocolo para acessar dados externos. Esses metadados ficam armazenados no MaxCompute.
As consultas SQL utilizam esses metadados para se conectar a fontes de dados externas, recuperar ou atualizar metadados e ler, computar ou gravar dados.
-
Casos de uso
Tabelas externas possibilitam a computação direta sobre dados externos, o gerenciamento de fontes de dados externas dentro da governança do MaxCompute, o processamento em lote de dados estruturados ou não estruturados de lagos, a troca de dados e o arquivamento de data warehouses em tempo real.
Faturamento
-
Taxas de armazenamento
Não há cobrança de taxas de armazenamento.
Os dados da tabela externa permanecem no sistema externo e não são copiados para o MaxCompute. O MaxCompute não cobra taxas de armazenamento para tabelas externas. Consulte as regras de faturamento da sua fonte de dados externa para verificar os custos de armazenamento correspondentes.
-
Taxas de computaçãoAs taxas de computação seguem as regras de faturamento de recursos de computação do MaxCompute:
-
Recursos de assinatura ou CU reservada:
As taxas de computação de tabelas externas estão incluídas nas taxas pré-pagas de recursos de computação.
-
Pagamento conforme o uso:
Jobs SQL que referenciam tabelas externas (incluindo OSS, OTS, Hologres, HBase, JDBC (como RDS), HDFS, OSSHDFS e jobs de Object Table).
-
-
Taxas de rede
A conexão com tabelas externas pelo endpoint público do MaxCompute gera tráfego de rede pública e taxas de download. Itens faturáveis e métodos de faturamento.
-
Taxas da fonte de dados externa
Fontes de dados externas podem cobrar taxas de computação, acesso ou transferência de dados. Verifique as regras de faturamento do serviço correspondente.
Escopo
Atualmente, o Tunnel e o Tunnel SDK não suportam tabelas externas. Faça upload dos dados para tabelas internas do MaxCompute via Tunnel ou utilize o OSS Python SDK para enviar ao OSS e mapeie os dados com uma tabela externa no MaxCompute.
-
Tabelas externas permitem a gravação de dados em fontes externas, mas as capacidades de escrita e a consistência estão sujeitas às limitações do sistema externo:
Hologres: O MaxCompute acessa metadados do Hologres via JDBC e não garante a atomicidade das transações de escrita. A engine SQL do MaxCompute consegue ler dados Pangu do Hologres diretamente, mas não pode gravar neles. Devido à complexidade de escritas paralelas distribuídas em múltiplos processos, o MaxCompute não suporta
INSERT OVERWRITEpara Hologres, e uma falha no job pode resultar em gravações parciais de dados.HDFS: Também baseado em HMS. Escritas no HDFS apresentam uma pequena probabilidade de inconsistência.
OSS: Escritas em tabelas externas do OSS utilizam arquivos de metadados .odps para reduzir a probabilidade de gravações incompletas. Caso você desative os arquivos de metadados .odps para compatibilidade com a engine, as escritas também terão uma pequena probabilidade de ficarem incompletas.
Ao usar
INSERT OVERWRITEpara gravar dados externos, o MaxCompute escreve os novos dados primeiro e depois exclui os dados existentes na tabela ou partição durante a fase de commit DDL, substituindo-os pelos novos dados. Não é possível reverter dados excluídos. Faça backup dos seus dados antes de gravar e valide os resultados após a conclusão da escrita. Se ocorrerem problemas, execute novamente a gravação completa.
Referências
Tabelas externas suportadas
O MaxCompute suporta tabelas externas para OSS, Hologres, RDS e outros serviços:
Exemplos de tabelas externas
Os exemplos a seguir demonstram como processar dados não estruturados com tabelas externas do MaxCompute:
Acesse dados não estruturados do OSS e TableStore (OTS): Tabelas externas do OSS e Acessar dados não estruturados do OTS.
Personalize a autorização RAM para o MaxCompute acessar o OSS por meio de tabelas externas: Autorização de fonte de dados externa.
Grave dados do MaxCompute no OSS usando INSERT: Tabelas externas do OSS.
Processe dados em formatos open-source: Tabelas externas do OSS.
Utilize o DataWorks com o MaxCompute para criar, pesquisar, consultar, configurar, processar e analisar tabelas externas visualmente: Tabelas externas.