O MaxCompute permite agendar jobs com a ferramenta de ETL Kettle. Use a interface de arrastar e soltar para definir fluxos de trabalho de processamento de dados e conectar-se a um projeto do MaxCompute por meio do driver JDBC.
Informações básicas
O Kettle é uma ferramenta de ETL open source escrita em Java. Ele roda em Windows, Unix e Linux, oferecendo uma GUI para construir pipelines de dados. O Kettle suporta uma ampla variedade de fontes de dados, incluindo bancos como Oracle, MySQL e DB2, além de sistemas de big data como HDFS, HBase, Cassandra e MongoDB.
Crie um job no Kettle para se conectar a um projeto do MaxCompute e, em seguida, agende esse job como parte de um fluxo de trabalho de ETL.
Pré-requisitos
Antes de começar, verifique se você possui os seguintes itens:
-
Um projeto do MaxCompute criado.
Para mais informações, consulte Create a MaxCompute project.
-
Um AccessKey ID e um AccessKey secret com permissões para acessar o projeto do MaxCompute.
Acesse a página AccessKey Management para obter suas credenciais.
-
O driver JDBC do MaxCompute (v3.2.8 ou posterior) baixado. Certifique-se de baixar o pacote que contém todas as dependências, cujo nome de arquivo inclui
jar-with-dependencies.Este tópico usa a v3.2.9 do driver JDBC do MaxCompute como exemplo.
-
O pacote de instalação do Kettle baixado e extraído em um diretório local.
Este tópico usa o Kettle 8.2.0.0-342 como exemplo.
Procedimento
-
Etapa 1: Colocar o driver JDBC do MaxCompute
Coloque o driver JDBC do MaxCompute no diretório de drivers do Kettle.
-
Etapa 2: Conectar-se a um projeto do MaxCompute
Conecte o Kettle ao seu projeto do MaxCompute.
-
Etapa 3: Criar um fluxo de trabalho de agendamento
Crie um fluxo de trabalho de agendamento de jobs na interface Spoon.
-
Etapa 4: Executar o fluxo de trabalho de agendamento
Execute o fluxo de trabalho de agendamento de jobs.
-
Etapa 5: Visualizar os resultados do job
Visualize os resultados do job.
Etapa 1: Colocar o driver JDBC do MaxCompute
Coloque o arquivo JAR do driver JDBC do MaxCompute, como odps-jdbc-3.2.9-jar-with-dependencies.jar, no diretório data-integration/lib da sua instalação do Kettle.
Etapa 2: Conectar-se a um projeto do MaxCompute
No diretório
data-integrationda sua instalação do Kettle, clique duas vezes emSpoon.bat(no Windows) ouSpoon(no macOS) para iniciar o Spoon.Na barra de menu superior, selecione File > New > Job para criar um job do Kettle destinado ao fluxo de trabalho de agendamento.
Na aba View, clique em com o botão direito em Database connections na árvore de navegação e selecione Create.
-
Na caixa de diálogo Database Connection, na aba General, configure os parâmetros conforme descrito na tabela a seguir.
Parâmetro
Descrição
Network Connection Name
Nome personalizado para a conexão de banco de dados. Por exemplo, MaxCompute.
Connection type
Selecione Generic database.
Connection Method
Selecione Native (JDBC).
Dialect
Selecione Hadoop Hive 2.
Custom Connection URL
URL de conexão para o projeto do MaxCompute. O formato é
jdbc:odps:<maxcompute_endpoint>?project=<MaxCompute_project_name>. Remova os símbolos<>ao configurar a URL. Parâmetros:-
<MaxCompute_endpoint>: Obrigatório. O endpoint da região onde seu projeto do MaxCompute está localizado.
Para obter uma lista de endpoints, consulte Endpoints.
-
<MaxCompute_project_name>: Obrigatório. O nome do projeto do MaxCompute de destino.
Este é o nome do seu projeto do MaxCompute, não de um workspace. Faça login no MaxCompute console, alterne a região no canto superior esquerdo e localize o nome do projeto na página Projects.
Custom Driver Class Name
Classe do driver JDBC. Defina como com.aliyun.odps.jdbc.OdpsDriver.
User Name
Seu AccessKey ID para o projeto do MaxCompute.
Acesse a página AccessKey Management para obter o AccessKey ID.
Password
Seu AccessKey secret.
-
Clique em Test. Após estabelecer a conexão com sucesso, clique em OK na caixa de diálogo de confirmação. Em seguida, clique em Confirm na caixa de diálogo Confirm para salvar a conexão.
Etapa 3: Criar um fluxo de trabalho de agendamento
Na aba Design do Spoon, construa um fluxo de trabalho de agendamento de jobs criando e vinculando objetos principais.
O exemplo a seguir detalha um processo de ETL que utiliza o comando LOAD para carregar dados do OSS em uma tabela interna do MaxCompute. Para os dados de amostra, consulte LOAD. Os jobs neste processo são divididos por tipo de objeto principal conforme descrito abaixo.

Na interface do Spoon, clique em na aba Design.
-
Com base na divisão de objetos anterior, arraste os objetos principais do painel de navegação à esquerda para a tela de jobs à direita. Conecte os objetos principais seguindo a estrutura abaixo.
Para conectar objetos principais, selecione um objeto de origem, pressione e segure Shift e clique em no objeto de destino para criar um salto de conexão.
Selecione a aba Core Objects no painel esquerdo e expanda General e outras categorias para obter componentes. A estrutura de conexão é: Start → Create table → Load from OSS → Processing → Success (caminho de sucesso); configure também caminhos de falha de Create table, Load from OSS e Processing para o nó Abort job para tratamento de erros.
-
Clique em com o botão direito em um objeto principal baseado em script e selecione Edit job entry. Na caixa de diálogo SQL, configure os parâmetros listados na tabela a seguir e clique em OK. Repita esse processo para configurar todos os objetos principais baseados em script.
Parâmetro
Descrição
Job entry name
Nome da entrada do job. Por exemplo, Create table, Load from OSS ou Processing.
Connection
Nome da conexão de banco de dados a ser usada. Refere-se à conexão criada na Etapa 2. Por exemplo, MaxCompute.
Send SQL as single statement?
Desmarque esta opção.
SQL Script
Script SQL para a entrada do job. Os scripts SQL para os objetos principais baseados em script neste exemplo são:
-
Create table
CREATE TABLE ambulance_data_csv_load ( vehicleId INT, recordId INT, patientId INT, calls INT, locationLatitute DOUBLE, locationLongtitue DOUBLE, recordTime STRING, direction STRING); -
Load from OSS
LOAD OVERWRITE TABLE ambulance_data_csv_load FROM LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-test/data_location/' STORED BY 'com.aliyun.odps.CsvStorageHandler' WITH serdeproperties ( 'odps.properties.rolearn'='acs:ram::xxxxx:role/aliyunodpsdefaultrole', -- The ARN of AliyunODPSDefaultRole. You can obtain it from the RAM console. 'odps.text.option.delimiter'=',' ); -
Processing
INSERT OVERWRITE TABLE ambulance_data_csv SELECT * FROM ambulance_data_csv_load;
-
Etapa 4: Executar o fluxo de trabalho de agendamento
-
Na interface do fluxo de trabalho de agendamento de jobs, clique em no ícone de execução
no canto superior esquerdo. Na caixa de diálogo Run Options, clique em Execute.Na caixa de diálogo, defina Run configuration como Pentaho local, Log level como Basic logging, mantenha Clear log before execution marcado por padrão e deixe as demais opções com seus valores padrão.
Opcional: Se for solicitado salvar o job, clique em Yes e nomeie o fluxo de trabalho de agendamento de jobs (por exemplo, mc).
-
Monitore o status de execução no diagrama DAG na interface do fluxo de trabalho ou na seção Execution Results. O fluxo de trabalho de agendamento de jobs estará concluído quando uma marca de verificação verde aparecer em cada objeto.
Ao término do fluxo de agendamento de jobs, o DAG exibirá marcas de verificação verdes nos nós Create table, Load from OSS, Processing e Success. A área Execution Results mostrará o resultado de cada entrada de job como verdadeiro, com a saída final Job has ended.
Etapa 5: Visualizar os resultados do job
Após a conclusão do fluxo de trabalho de agendamento de jobs, execute uma consulta SQL para verificar se os dados foram gravados na tabela de destino conforme esperado.
Na interface do Spoon, clique em na aba View. Sob o job do Kettle criado (por exemplo, mc), expanda Database connections.
Clique em com o botão direito na conexão de banco de dados criada (por exemplo, MaxCompute) e selecione SQL Editor.
-
Na caixa de diálogo Simple SQL editor, insira uma consulta SQL e clique em Execute. Os resultados aparecerão na caixa de diálogo Examine preview data.
A consulta SQL é a seguinte:
SELECT * FROM ambulance_data_csv;