Transmita dados de log incrementais em tempo real de um logstore do Loghub no Simple Log Service (SLS) para uma tabela ampla do Lindorm usando o Lindorm Tunnel Service (LTS).
Este recurso foi descontinuado em 16 de junho de 2023. Instâncias do LTS adquiridas após essa data não podem utilizá-lo. Se sua instância do LTS foi comprada antes de 16 de junho de 2023, o recurso permanece disponível.
Este recurso oferece suporte a:
Streaming em tempo real de um logstore do SLS para uma tabela ampla do Lindorm
Paralelismo de consumidor configurável para lidar com logstores de alto volume
Mapeamento direto de campos e transformação de valores baseada em expressões (sintaxe Jtwig)
Declaração de chave primária por coluna
Pré-requisitos
Antes de começar, verifique se você:
Adicionou uma source de dados do Loghub
Tipos de tabela de destino compatíveis
Somente tabelas criadas com Lindorm SQL são compatíveis como destinos de replicação.
Configure um canal de replicação de dados em tempo real
Na página de ação do LTS, clique em Import Lindorm/HBase > SLS Real-time Data Replication.
Na página SLS Real-time Data Replication, clique em Create Task.
Insira um Channel Name, selecione os clusters de origem e de destino e especifique as tabelas a sincronizar ou migrar.
Clique em Create. Após a criação do canal, os detalhes serão exibidos.
Configure parâmetros do canal
A configuração do canal é um objeto JSON com uma seção reader (origem) e uma seção writer (destino).
{
"reader": {
"columns": [
"__client_ip__",
"C_Source",
"id",
"name"
],
"consumerSize": 2,
"logstore": "LTS-test"
},
"writer": {
"columns": [
{
"name": "col1",
"value": "{{ concat('xx', name) }}"
},
{
"name": "col2",
"value": "__client_ip__"
},
{
"isPk": true,
"name": "id",
"value": "id"
}
],
"tableName": "default.sls"
}
}
Parâmetros do Reader
|
Parâmetro |
Descrição |
Padrão |
|
|
Lista de nomes de campos do Loghub a ler do logstore. |
— |
|
|
Quantidade de consumidores inscritos nos dados do Loghub. |
|
|
|
Nome do logstore de origem. |
— |
Parâmetros do Writer
O array writer.columns mapeia campos de origem para colunas da tabela de destino. Cada entrada é um objeto com os seguintes campos:
|
Campo |
Descrição |
|
|
Nome da coluna na tabela ampla de destino do Lindorm. |
|
|
Nome do campo de origem a mapear ou expressão Jtwig que transforma o valor. |
|
|
Defina como |
O campo tableName especifica a tabela de destino no formato <schema>.<table> (por exemplo, default.sls).
Exemplo de mapeamento de colunas:
A tabela a seguir mostra como a configuração de exemplo mapeia campos de origem para colunas de destino:
|
Campo de origem |
Expressão |
Coluna de destino |
Observações |
|
|
|
|
Concatena o prefixo |
|
|
(mapeamento direto) |
|
Mapeia o valor do campo sem transformação |
|
|
(mapeamento direto) |
|
Coluna de chave primária ( |
Sintaxe de expressões
O campo value aceita expressões simples em Jtwig para transformação de valores.
{
"name": "hhh",
"value": "{{ concat(title, id) }}"
}