Um catálogo de dados registra um serviço de metadados externo, como DLF, Hive Metastore (HMS), StarRocks ou Hologres, em um workspace do EMR Serverless Spark. Após o registro, você pode visualizar os bancos de dados, tabelas e colunas no console e acessar os dados pelo nome do catálogo em SQL, sessões interativas e jobs do Spark. Os catálogos de dados são úteis para cenários que exigem isolamento de metadados ou análise entre diferentes fontes de dados.
Visão geral dos catálogos
O EMR Serverless Spark oferece um sistema flexível de gerenciamento de catálogos que compatível com diversos tipos, como Paimon, Iceberg e StarRocks. Além do tipo padrão de catálogo de dados, o sistema também oferece suporte a um catálogo integrado e catálogos personalizados. Esta seção descreve os tipos de catálogo no EMR Serverless Spark e como configurá-los e utilizá-los.
|
Tipo de catálogo |
Fontes de dados compatíveis |
Como adicionar |
Descrição |
Uso |
|
Catálogo de dados |
|
Adicione manualmente um catálogo na página Catalog. |
Após adicionar um catálogo, reinicie todas as sessões em execução para que as alterações entrem em vigor. |
|
|
Catálogo personalizado |
Paimon, Iceberg e outros |
Edite uma sessão e adicione os parâmetros necessários na guia Spark Configuration. |
Este tipo exige configuração manual de parâmetros e pode ser estendido para diversas fontes de dados. Para mais informações, consulte Usar o Iceberg e o Guia do usuário do Paimon. |
|
Adicionar catálogo de dados
-
Acesse a página de Catálogos de Dados.
Faça logon no console do EMR.
No painel de navegação à esquerda, escolha EMR Serverless > Spark.
Na página Spark, clique no nome do workspace desejado.
-
Na página do EMR Serverless Spark, clique em Catalog no painel de navegação à esquerda.
NotaA página de Catálogos de Dados exibe os bancos de dados e tabelas do catálogo de dados do Data Lake Formation selecionado durante a criação do workspace.
Clique em Add Catalog.
Na caixa de diálogo Add Catalog, selecione um tipo de catálogo, configure os parâmetros necessários e clique em Add. Os seguintes tipos de catálogo são compatíveis.
Catálogo de dados DLF
O DLF Catalog é um serviço para gerenciar e consultar metadados em um data lake. Ao selecionar um catálogo de dados DLF existente ou criar um novo, você acessa rapidamente os metadados do seu data lake.
Para criar um novo catálogo de dados DLF, clique em Create Catalog para acessar o console do Data Lake Formation. Para mais informações, consulte Gerenciar metadados.
Ao usar um catálogo de dados DLF, apenas as seguintes versões de mecanismo são compatíveis: esr-4.3.0 ou posterior, esr-3.3.0 ou posterior e esr-2.7.0 ou posterior.
Catálogo de dados Hive Metastore (HMS)
O External Hive Metastore é um serviço de metadados independente, geralmente usado para gerenciar metadados de tabelas Hive. Configure esse serviço para integrar metadados de um Hive Metastore externo ao seu ambiente atual.
Certifique-se de que exista uma conexão de rede entre o EMR Serverless Spark e a VPC onde o Hive Metastore externo está localizado.
|
Parâmetro |
Descrição |
|
Network Connection |
A conexão de rede com a VPC onde o Hive Metastore externo está localizado. Selecione uma conexão de rede existente na lista suspensa. Para mais informações, consulte Etapa 1: Adicionar uma conexão de rede. Nota
|
|
Metastore service address |
O endereço de serviço do Hive Metastore externo, no formato Onde:
|
|
Autenticação Kerberos |
Se a autenticação Kerberos estiver habilitada para o Hive Metastore externo, especifique o caminho do arquivo keytab e o nome do principal.
|
Para adicionar um Hive Metastore externo, consulte Conectar a um Hive Metastore externo.
Catálogo de dados StarRocks
O StarRocks é um banco de dados analítico de alto desempenho. Adicionar um catálogo de dados StarRocks registra os metadados de uma instância do StarRocks no EMR Serverless Spark. Após adicionar o catálogo, você pode ler e gravar dados do StarRocks diretamente nos seus jobs e sessões, sem precisar configurar parâmetros de conexão para cada tarefa. Certifique-se de que exista uma conexão de rede entre o EMR Serverless Spark e a VPC onde a instância do StarRocks está localizada.
Após adicionar o catálogo, use um identificador de três partes no SQL para ler e gravar dados no StarRocks. Por exemplo: SELECT * FROM <catalogName>.<dbName>.<tableName>;
Os catálogos de dados StarRocks são compatíveis apenas com as seguintes versões de mecanismo: esr-4.8.0 ou posterior e esr-5.2.0 ou posterior.
|
Parâmetro |
Descrição |
|
Catalog Name |
O nome do catálogo de dados StarRocks. Esse nome, que deve ser exclusivo no workspace, é usado para referenciar o catálogo no SQL. |
|
Normal Network Connection |
A conexão de rede com a VPC onde a instância do StarRocks está localizada. Selecione uma conexão de rede existente na lista suspensa. Para mais informações, consulte Etapa 1: Adicionar uma conexão de rede. Nota
|
|
Endpoint |
O endereço de acesso do frontend (FE) do StarRocks, como |
|
Query Port |
A porta de consulta do FE do StarRocks. Geralmente, é 9030. |
|
Username |
O nome de usuário para acessar o StarRocks. Os jobs do Spark usam esse nome de usuário para autenticação ao ler ou gravar dados no StarRocks. |
|
Password |
A senha do nome de usuário especificado. |
Para saber como ler e gravar dados do StarRocks nas suas tarefas, consulte Ler e gravar no StarRocks.
Catálogo de dados Hologres
O Hologres é um data warehouse em tempo real que oferece suporte a gravações em tempo real de alta taxa de transferência e análises em tempo real em dados de grande escala. Adicionar um catálogo de dados Hologres registra os metadados de uma instância do Hologres no EMR Serverless Spark. Após adicionar o catálogo, você pode ler e gravar dados do Hologres diretamente nos seus jobs e sessões, sem precisar configurar parâmetros de conexão para cada tarefa. Certifique-se de que exista uma conexão de rede entre o EMR Serverless Spark e a VPC onde a instância do Hologres está localizada.
Após adicionar o catálogo, use um identificador de três partes no SQL para ler e gravar dados no Hologres. Cada catálogo está estritamente vinculado a um banco de dados do Hologres, e o acesso entre bancos de dados não é compatível. Em outras palavras, não é possível usar um único catálogo para acessar vários bancos de dados do Hologres. A estrutura lógica do catálogo é consistente com a do Hologres:
|
Conceito no Spark |
Conceito no Hologres |
Descrição |
|
Catálogo |
Banco de dados |
Por exemplo, |
|
Namespace |
Schema |
Por exemplo, |
|
Tabela |
Tabela |
Especifique a tabela explicitamente como |
Os catálogos de dados Hologres são compatíveis apenas com as seguintes versões de mecanismo: esr-4.9.0 ou posterior.
|
Parâmetro |
Descrição |
|
Catalog Name |
O nome do catálogo de dados Hologres. Esse nome, que deve ser exclusivo no workspace, é usado para referenciar o catálogo no SQL. |
|
Normal Network Connection |
A conexão de rede com a VPC onde a instância do Hologres está localizada. Selecione uma conexão de rede existente na lista suspensa. Para mais informações, consulte Etapa 1: Adicionar uma conexão de rede. Nota
|
|
Endpoint |
O endereço de acesso da instância do Hologres. Você pode encontrá-lo na página de detalhes da instância no console do Hologres. |
|
Query Port |
A porta da instância do Hologres. Geralmente, é 80. |
|
Username |
O nome de usuário para acessar o Hologres. Os jobs do Spark usam esse nome de usuário para autenticação ao ler ou gravar dados no Hologres.
|
|
Password |
A senha do nome de usuário especificado.
|
Para saber como ler e gravar dados do Hologres nas suas tarefas, consulte Ler e gravar no Hologres.
Catálogo de dados Fluss
O Fluss é um sistema de armazenamento de fluxo colunar de alto desempenho que oferece suporte a leitura e gravação de fluxo em subsegundos para análises em tempo real e IA. Após adicionar um catálogo de dados Fluss, seus jobs do EMR Serverless Spark podem acessar os dados no cluster Fluss sem autenticação, sem a necessidade de configurar informações de conexão para cada job e sessão.
Apenas clusters Fluss que oferecem suporte à autenticação sem senha podem ser adicionados.
Os catálogos de dados Fluss são compatíveis apenas com a versão esr-4.10.0 ou posterior. Para usar catálogos de dados Fluss em outras versões, abra um ticket.
|
Parâmetro |
Descrição |
|
Cluster Fluss |
O cluster Fluss a ser associado. |
|
Catalog Name |
O nome do catálogo de dados Fluss, usado para referenciar o catálogo nos jobs. O nome deve ser exclusivo no workspace. |
|
Normal Network Connection |
A conexão de rede entre o ambiente atual e a VPC onde o cluster Fluss está localizado. Selecione uma conexão de rede existente na lista suspensa. Para mais informações, consulte Etapa 1: Criar uma conexão de rede. Nota
|
Visualizar bancos de dados e tabelas
-
Na página Catalog, clique no ID de um catálogo de dados.
Todos os bancos de dados do catálogo de dados são exibidos.
-
Na coluna Ações, clique em Table.
Todas as tabelas do banco de dados selecionado são exibidas.
-
Na coluna Ações, clique em Field.
O schema e os detalhes das colunas da tabela selecionada são exibidos.
Usar um catálogo de dados no SQL
Após adicionar um catálogo de dados, acesse seus bancos de dados e tabelas pelo nome do catálogo no desenvolvimento SQL e nas sessões interativas, sem precisar especificar informações de conexão em cada tarefa.
Alternar o catálogo e o banco de dados padrão
Após a alternância, as instruções subsequentes podem referenciar tabelas pelo nome em vez de usar um identificador completo de três partes.
-- Switch the default catalog
USE <catalogName>;
-- Switch the default catalog and database
USE <catalogName>.<dbName>;
Consultar usando um identificador de três partes
Se você não alternar o catálogo padrão, referencie a tabela diretamente como catalogName.dbName.tableName.
SELECT * FROM <catalogName>.<dbName>.<tableName>;
Para um catálogo de dados Hologres, a segunda parte do identificador é um schema, não um banco de dados. Cada catálogo de dados Hologres está vinculado a um banco de dados, e o schema padrão é public.
-- Hologres: the second part is a schema. The default schema is public.
SELECT * FROM <hologresCatalog>.public.<tableName>;
-- You can also switch the catalog and schema first, and then reference the table by name.
USE <hologresCatalog>;
USE public;
SELECT * FROM <tableName>;
Fazer join de dados entre catálogos
Uma única instrução pode referenciar tabelas de diferentes catálogos de dados usando identificadores de três partes. O exemplo a seguir faz join de uma tabela de dimensão de usuários no DLF com uma tabela de pedidos no Hologres.
SELECT
d.user_id,
d.user_name,
o.order_id,
o.amount
FROM dlf_catalog.user_db.dim_user AS d
JOIN hologres_catalog.public.orders AS o
ON d.user_id = o.user_id;
Antes de executar a instrução, certifique-se de que todos os catálogos de dados referenciados foram adicionados, as redes estão acessíveis e sua identidade tem permissões nos bancos de dados e tabelas correspondentes.
Usar um catálogo de dados no PySpark
No PySpark, use identificadores de três partes para ler e gravar tabelas em um catálogo de dados.
# Read a table
df = spark.table("<catalogName>.<dbName>.<tableName>")
# Write to a table
(
df.write
.mode("append")
.saveAsTable("<catalogName>.<dbName>.<tableName>")
)
Você também pode ler tabelas de diferentes catálogos de dados e depois fazer join entre elas.
dim_user = spark.table("dlf_catalog.user_db.dim_user")
orders = spark.table("hologres_catalog.public.orders")
result = orders.join(dim_user, on="user_id", how="inner")
result.show()
Antes de gravar dados, certifique-se de que a fonte de dados de destino oferece suporte ao modo de gravação e que sua conta tem permissões de gravação.
Excluir um catálogo de dados
Na página Catalog, localize o catálogo de dados que deseja excluir.
Clique em Delete na coluna Ações e confirme a operação conforme solicitado.
Excluir um catálogo de dados remove apenas o seu registro do workspace atual. Os bancos de dados, tabelas e dados no DLF, HMS, StarRocks ou Hologres não são excluídos.
Após a exclusão, as sessões em execução ainda podem usar a configuração anterior. Reinicie as sessões e verifique se o catálogo não está mais acessível.
FAQ
Um catálogo é reportado como não encontrado no SQL após ser adicionado
As sessões interativas em execução não recarregam automaticamente as configurações do catálogo de dados. Reinicie a sessão e verifique se o nome do catálogo no seu SQL corresponde ao nome exibido na página do catálogo de dados. Sessões e jobs iniciados posteriormente carregam a configuração mais recente na inicialização.
A adição de um catálogo de dados ou o teste de conectividade falha
Verifique os seguintes itens em ordem:
A conexão de rede está disponível.
O workspace e o serviço de destino residem na mesma região e na VPC esperada.
Rotas, grupos de segurança e a lista de permissões do serviço de destino permitem o acesso.
O endpoint e a porta estão corretos.
O nome de usuário, a senha e o método de autenticação estão corretos.
A versão atual do mecanismo atende aos requisitos do tipo de catálogo.
A lista do DLF não contém o catálogo de dados esperado
Os catálogos de dados do DLF são específicos por região. Certifique-se de que o catálogo de dados reside na mesma região do workspace e verifique se sua conta tem permissões de leitura no catálogo de dados.
A conexão HMS expira
Verifique a conexão de rede, as regras do grupo de segurança, o status do serviço HMS e a porta Thrift. A porta padrão é 9083, mas a porta real depende da sua implantação. Se o endereço não puder ser resolvido, verifique a configuração de DNS da VPC onde o workspace reside ou use um endereço interno acessível.
Uma consulta no Hologres reporta que a tabela não existe
Um catálogo de dados Hologres está vinculado a um único banco de dados, e uma consulta também deve especificar o schema correto. Use catalogName.schemaName.tableName ou execute USE <schemaName> primeiro. O schema padrão geralmente é public.
Posso adicionar vários catálogos de dados a um workspace?
Sim. Você pode adicionar vários catálogos de dados do mesmo tipo ou de tipos diferentes. Cada catálogo é registrado de forma independente, mas os nomes devem ser exclusivos dentro de um workspace. Para acessar vários bancos de dados do Hologres, adicione um catálogo de dados para cada banco de dados.
Excluir um catálogo de dados exclui os dados corporativos?
Não. A exclusão remove apenas o registro do workspace. Os bancos de dados, tabelas e dados no serviço externo não são afetados.
Por que o MaxCompute e o Iceberg não estão listados como tipos de catálogo?
O MaxCompute é acessado por meio do Spark MaxCompute Connector e não é registrado na página de catálogo de dados. O Iceberg é um catálogo personalizado que você habilita na configuração do Spark de uma sessão ou job. Para mais informações, consulte Usar o Iceberg.
Um catálogo de dados DLF usa o formato Paimon por padrão. Não é necessário adicionar um catálogo Paimon separado. Para mais informações sobre o Paimon, consulte o Guia do usuário do Paimon.