O Data Integration do DataWorks lê dados do Message Queue (MQ) com o MetaQ Reader. Este tópico descreve os recursos de leitura de dados MetaQ no DataWorks.
Versões compatíveis
O MetaQ Reader assina dados de mensagens em tempo real no MetaQ por meio do SDK Java do serviço Message Queue. As versões do SDK Java utilizadas são:
<dependency>
<groupId>com.taobao.metaq.final</groupId>
<artifactId>metaq-client</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>ons-sdk</artifactId>
<version>1.3.1</version>
</dependency>
Limitações
Atualmente, o plugin MetaQ Reader lê dados MQ apenas no modo script.
O MetaQ Reader é compatível com grupos de recursos serverless (recomendado) e grupos de recursos exclusivos para Data Integration.
Tipos de coluna compatíveis
Os tipos de coluna compatíveis estão listados abaixo.
|
Tipo de coluna |
Leitura em lote (MetaQ Reader) |
|
STRING |
Compatível |
O mapeamento de tipos que o MetaQ Reader utiliza para os tipos do MetaQ é:
|
Tipo de dado do Data Integration |
Tipo de dado do Message Queue |
|
STRING |
STRING |
Desenvolver uma tarefa de sincronização de dados
Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias a seguir.
Para detalhes do procedimento, consulte Configuração no modo script.
Para consultar todos os parâmetros e exemplos de script para configuração no modo script, acesse o Apêndice: Exemplos de script MetaQ e descrição de parâmetros abaixo.
Apêndice: Exemplo de script MetaQ e descrição de parâmetros
Configure uma tarefa de sincronização em lote usando o editor de código
Para configurar uma tarefa de sincronização em lote pelo editor de código, defina os parâmetros relacionados no script conforme os requisitos unificados de formato de script. Para mais informações, consulte Configuração no modo script. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados ao configurar uma tarefa de sincronização em lote via editor de código.
Exemplo de script do Reader
{
"job": {
"content": [
{
"reader": {
"name": "metaqreader",
"parameter": {
"accessId": "<yourAccessKeyId>",
"accessKey": "<yourAccessKeySecret>",
"consumerId": "Test01",
"topicName": "test",
"subExpression": "*",
"onsChannel": "ALIYUN",
"domainName": "***.aliyun.com",
"contentType": "singlestringcolumn",
"beginOffset": "lastRead",
"nullCurrentOffset": "begin",
"fieldDelimiter": ",",
"column": [
"col0"
],
"fieldDelimiter": ","
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"print": false
}
}
}
]
}
}
Parâmetros do script do Reader
|
Parâmetro |
Descrição |
Obrigatório |
|
accessId |
Informações da chave de acesso do MQ para autenticação. |
Sim |
|
accessKey |
Sim |
|
|
consumerId |
Um consumidor é um assinante que recebe e processa mensagens. consumerId identifica um grupo de consumidores. Consumidores no mesmo grupo geralmente recebem e processam o mesmo tipo de mensagem com a mesma lógica de consumo. |
Sim |
|
topicName |
Tópico da mensagem. Corresponde ao tipo de mensagem de primeiro nível usado para classificação. |
Sim |
|
subExpression |
Subtópico da mensagem. |
Sim |
|
onsChannel |
Usado para autenticação no Message Queue. |
Sim |
|
unitName |
Unidade de destino para recebimento de mensagens. As unidades comuns incluem:
|
Não |
|
instanceName |
Nome da instância do consumidor. |
Não |
|
domainName |
Endpoint do serviço Message Queue. |
Sim |
|
contentType |
Tipo da mensagem. Valores válidos: singlestringcolumn (tipo STRING), text (tipo texto) e json (tipo JSON). |
Sim |
|
beginOffset |
Offset inicial para leitura da tarefa. Valores válidos: begin (do início) e lastRead (offset da última leitura). |
Não |
|
nullCurrentOffset |
Posição inicial de leitura quando o último offset estiver vazio. Valores válidos: begin (do início) e current (offset atual). |
Sim |
|
fieldDelimiter |
Delimitador de colunas para strings de mensagem no modo delimitado, como vírgulas. Caracteres de controle são suportados, por exemplo \u0001. |
Sim |
|
column |
Lista de colunas a serem lidas. |
Sim |
|
beginDateTime |
Hora inicial para consumo de dados. Representa o limite esquerdo do intervalo de tempo (fechado à esquerda, aberto à direita). beginDateTime é uma string de tempo no formato yyyyMMddHHmmss, compatível com os parâmetros de agendamento do DataWorks. |
Não Nota
Use beginDateTime e endDateTime em conjunto. |
|
endDateTime |
Hora final para consumo de dados. Representa o limite direito do intervalo de tempo (fechado à esquerda, aberto à direita). endDateTime é uma string de tempo no formato yyyyMMddHHmmss, compatível com os parâmetros de agendamento do DataWorks. |