O Kettle é uma ferramenta de extração, transformação e carga (ETL) de código aberto que se conecta ao MaxCompute por meio de um driver Java Database Connectivity (JDBC). Este tópico explica como instale o driver, configure uma conexão de banco de dados no Spoon, crie um fluxo de trabalho ETL e verifique os resultados.
Informações básicas
O Kettle é uma ferramenta ETL de código aberto escrita em Java. Ele roda nos sistemas operacionais Windows, UNIX e Linux e oferece uma interface gráfica. O Kettle é compatível com diversas fontes de dados de entrada e saída, incluindo bancos de dados como Oracle, MySQL e DB2, além de sistemas de big data de código aberto como Hadoop Distributed File System (HDFS), HBase, Cassandra e MongoDB.
Pré-requisitos
Antes de começar, verifique se você tem:
Um projeto do MaxCompute. Consulte Criar um projeto do MaxCompute.
Um par de AccessKey da sua conta Alibaba Cloud. Acesse AccessKey Management para obter seu AccessKey ID e AccessKey secret.
O pacote do driver JDBC do MaxCompute (V3.2.8 ou posterior) baixado de GitHub Releases. Baixe o arquivo cujo nome termina com
jar-with-dependencies.jar. Essa variante inclui todas as dependências necessárias, portanto, não é preciso configure o classpath separadamente. Este tópico utilizaodps-jdbc-3.2.9-jar-with-dependencies.jar.O Kettle baixado do site da comunidade Hitachi Vantara e extraído em um diretório local. Este tópico usa o Kettle 8.2.0.0-342.
Etapa 1: Instale o driver JDBC
Copie odps-jdbc-3.2.9-jar-with-dependencies.jar (ou a versão baixada) para o diretório data-integration/lib na sua instalação do Kettle.

Para confirme a instalação do driver, verifique se o arquivo consta em data-integration/lib com o nome correto antes de iniciar o Spoon.
Etapa 2: Conectar o Kettle ao MaxCompute
Obter os valores de conexão
Dois valores são necessários para montar a URL de conexão:
Endpoint do MaxCompute: depende da região onde o projeto está localizado. Consulte Endpoints para obter a lista completa.
Nome do projeto MaxCompute: faça login no MaxCompute console, selecione a região na barra de navegação superior e localize o nome do projeto na aba Project management.
O nome do projeto refere-se ao projeto MaxCompute, não ao workspace do DataWorks associado.
O formato da URL de conexão é:
jdbc:odps:<MaxCompute_endpoint>?project=<MaxCompute_project_name>
Substitua <MaxCompute_endpoint> e <MaxCompute_project_name> pelos valores reais.
Configure a conexão no Spoon
-
No diretório
data-integration, inicie o Spoon:Windows: clique em duas vezes em
Spoon.batmacOS: clique em duas vezes em
Spoon
-
Na barra de menus, escolha File > New > Job.

-
Clique em na aba View. Na árvore de navegação, clique em com o botão direito em Database connections e selecione New.

-
Na aba General da caixa de diálogo, defina os seguintes parâmetros:
Parâmetro
Valor
Connection name
Nome para identificar esta conexão, como
MaxComputeConnection type
Selecione Generic database
Method of access
Selecione Native (JDBC)
Dialect
Selecione Hadoop Hive 2
Custom connection URL
URL montada na seção anterior
Custom driver class name
com.aliyun.odps.jdbc.OdpsDriverUsername
Seu AccessKey ID
Password
Seu AccessKey secret
-
Clique em Test. Se a conexão for bem-sucedida, clique em OK e depois em Confirm.
Etapa 3: Crie um fluxo de trabalho de agendamento de jobs
Esta etapa cria um fluxo de trabalho ETL que carrega dados CSV do Object Storage Service (OSS) para uma tabela interna do MaxCompute usando o comando LOAD. Os dados de exemplo estão descritos em Usar um extrator integrado ou um storage handler para importar dados.
O fluxo de trabalho utiliza três jobs conectados em sequência:

-
Clique em na aba Design. Arraste os três objetos de job do painel esquerdo para a tela e conecte-os na ordem mostrada acima. Para conectar dois objetos, selecione o objeto de source e pressione Shift enquanto clica em no objeto de destino.

-
Clique em com o botão direito em cada objeto de job e selecione Edit. Na caixa de diálogo SQL, configure os parâmetros a seguir e clique em OK. Repita o processo para os três jobs. Create table
Parâmetro
Descrição
Job entry name
Nome do job, como
Create table,Load from OSSouProcessingConnection
Selecione a conexão de banco de dados criada na Etapa 2, como
MaxComputeSend SQL as single
Deixe desmarcado
SQL Script
Script SQL de cada job (veja abaixo)
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', -- Alibaba Cloud Resource Name (ARN) of the AliyunODPSDefaultRole role. Get it from the Roles page in the Resource Access Management (RAM) console. 'odps.text.option.delimiter'=',' );Processing
INSERT OVERWRITE TABLE ambulance_data_csv SELECT * FROM ambulance_data_csv_load;
Etapa 4: Execute o fluxo de trabalho
-
Clique em no ícone
no canto superior esquerdo da aba do job. Na caixa de diálogo Run Options, clique em Run.
-
(Opcional) Se o sistema solicitar que você salve o fluxo de trabalho, clique em Yes e insira um nome como
mc.
-
Acompanhe o progresso na visualização de grafo acíclico dirigido (DAG) ou na seção Execution Results. O fluxo de trabalho estará concluído quando todos os jobs exibirem status de sucesso.

Etapa 5: Verifique os resultados
Clique em na aba View e expanda a conexão de banco de dados do job (como
mc).-
Clique em com o botão direito na conexão de banco de dados (como
MaxCompute) e selecione SQL Editor.
-
Na caixa de diálogo Simple SQL editor, execute a consulta a seguir e revise a saída na caixa de diálogo Examine preview data.
SELECT * FROM ambulance_data_csv;Se a consulta retornar linhas, os dados foram carregados corretamente na tabela do MaxCompute.
