O Trino é um mecanismo de consulta SQL distribuído e de código aberto, projetado para análises interativas em múltiplas fontes de dados. Configure um nó EMR Trino no E-MapReduce (EMR) para agregar e gerar relatórios de dados multidimensionais em grande escala.
Pré-requisitos
Crie um cluster Alibaba Cloud EMR e registre-o no DataWorks. Para mais informações, consulte New Data Studio: Attach an EMR compute resource.
-
(Opcional, para usuários RAM) Adicione o usuário do Resource Access Management (RAM) responsável pelo desenvolvimento de tarefas ao workspace e atribua a ele a função Development ou Workspace Administrator (esta função inclui permissões amplas; conceda-a com cautela). Para mais informações, consulte Add workspace members.
Se você usar uma conta raiz, pule esta etapa.
Limitações
Os nós EMR Trino executam apenas em grupos de recursos serverless.
-
Para gerenciar metadados de data lake ou clusters personalizados no DataWorks, configure primeiro o EMR-HOOK no cluster. Para detalhes, consulte Configure EMR-HOOK for Hive.
NotaSem a configuração do EMR-HOOK no cluster, o DataWorks não exibe metadados em tempo real, não gera logs de auditoria, não mostra linhagem de dados nem executa tarefas de governança relacionadas ao EMR.
Se a autenticação LDAP (Lightweight Directory Access Protocol) estiver ativada para o Trino, faça login no nó mestre do EMR e baixe o arquivo de keystore do diretório
/etc/taihao-apps/trino-conf. Em seguida, acesse o DataWorks console. Na barra de navegação superior, selecione a região desejada, localize seu workspace e clique em Operation na coluna Management para acessar o Management Center. No painel de navegação à esquerda, selecione Compute Resource. Localize o Account Mapping do seu cluster EMR e clique em Edit Account Mapping. Na página exibida, clique em Upload Keystore File para enviar o arquivo.
Procedimento
-
Na página de edição do nó EMR Trino, siga as etapas abaixo.
Configurar conectores
Antes de consultar tabelas MySQL, configure o conector integrado do EMR Trino para MySQL. Para detalhes, consulte MySQL Connector.
Para consultar tabelas Hive, configure previamente o conector integrado do EMR Trino para Hive. Mais informações em Hive Connector.
Para consultar tabelas de outras fontes de dados, consulte Configure connectors.
Editar código SQL
No editor SQL, escreva o código da tarefa. Defina variáveis com o formato ${variable_name}. No painel Scheduling Settings, à direita, atribua valores às variáveis na seção Scheduling Parameters. Isso permite passar parâmetros dinamicamente durante execuções agendadas. Para mais informações sobre parâmetros de agendamento, consulte Sources and expressions of scheduling parameters. O código a seguir apresenta um exemplo.
-- Usage -- SELECT * FROM <catalog>.<schema>.<table>; -- Parameter description -- <catalog>: The name of the data source to connect to. -- <schema>: The name of the database to use. -- <table>: The table to query. -- Example: Query data from the hive_table table in the default database of a Hive data source. -- Query a Hive table SELECT * FROM hive.default.hive_table; -- Example: Query data from the rt_user table in the custom rt_data database of a MySQL data source. -- Query a MySQL table SELECT * FROM mysql.rt_data.rt_user; -- Join a Hive table and a MySQL table SELECT DISTINCT a.id, a.name,b.rt_name FROM hive.default.hive_table a INNER JOIN mysql.rt_data.rt_user b ON a.id = b.id; -- Query a Hive table by using a scheduling parameter SELECT * FROM hive.default.${table_name};(Opcional) Configurar parâmetros avançados
No lado direito da página de edição do nó, no painel Scheduling Settings, configure as propriedades a seguir em .
NotaTambém é possível configurar propriedades open-source do Spark em no painel Scheduling Settings à direita.
Parâmetro
Descrição
FLOW_SKIP_SQL_ANALYZE
Define como as instruções SQL são executadas. Valores válidos:
-
true: Executa múltiplas instruções SQL simultaneamente. -
false(padrão): Executa uma instrução SQL por vez.
DATAWORKS_SESSION_DISABLE
Controla a reutilização de conexões JDBC ao executar testes no ambiente de desenvolvimento. Valores válidos:
-
true: Cria uma nova conexão JDBC para cada execução de instrução SQL. -
false(padrão): Reutiliza a mesma conexão JDBC para diferentes instruções SQL executadas dentro do mesmo nó.
Executar a tarefa SQL
-
No painel Run Configuration, em Compute Resource, selecione um Compute Resource e um DataWorks Resource Group.
NotaAjuste as CUs for Scheduling conforme os recursos necessários para a tarefa. O valor padrão é
0.25.Para acessar fontes de dados pela internet pública ou em uma Virtual Private Cloud (VPC), utilize um grupo de recursos de agendamento que tenha passado no teste de conectividade da fonte de dados. Para detalhes, consulte Network Connectivity Solutions.
-
Na caixa de diálogo de parâmetros da barra de ferramentas, selecione uma fonte de dados e clique em Run para executar a tarefa SQL.
NotaOs resultados de consulta de um nó EMR Trino limitam-se a 10.000 linhas e 10 MB.
Para executar a tarefa do nó regularmente, configure suas propriedades de agendamento de acordo com seus requisitos de negócio. Para detalhes, consulte Configure Node Scheduling.
Após configurar o nó, publique-o. Para detalhes, consulte Publish a Node or Workflow.
Depois de publicar a tarefa, visualize seu status operacional no Operation Center. Para detalhes, consulte Get started with Operation Center.
Perguntas frequentes
-
P: Ocorre um tempo limite de conexão quando executo o nó. Por quê?
EMR execute task failed! SQL: {"name":"dw20251018","type":"TRINO_SQL","launcher":{"allocationSpec":{}},"properties":{"envs":{"FLOW_SKIP_SQL_ANALYZE":false},"arguments":["select * from default.dim_customers;"],"tags":[]},"description":"DataWorks"} TASK-MESSAGE: FAILED: Error executing queryR: Verifique se o grupo de recursos e o cluster têm conectividade de rede entre si. Acesse a lista de recursos de computação e clique em Resource Initialization. Na caixa de diálogo exibida, clique em Re-initialize. Confirme se a inicialização foi bem-sucedida.
A caixa de diálogo exibe a seguinte mensagem na parte superior: Se esta for a primeira vez que você vincula um cluster ou se a configuração do serviço do cluster (por exemplo, o arquivo hive-site) foi alterada, inicialize o grupo de recursos. Caso contrário, as tarefas podem falhar na execução.