Macros e funções macro

As macros são marcadores de posição na propriedade do plug-in do Cloud Data Fusion personalizadas. Elas são representadas por variáveis dentro de ${ }, como ${input_file_path}. Para ativar a configuração dinâmica de elementos, como arquivo caminhos e nomes de tabela, os espaços reservados são substituídos por valores reais em no ambiente de execução.

Ao visualizar as propriedades de um plug-in, você pode adicionar uma macro a qualquer campo de propriedade que tem o símbolo M ao lado. Para adicionar a macro, clique no M.

Para mais informações, consulte Gerenciar macros, preferências e argumentos do ambiente de execução.

Funções macro

Além das macros, você pode usar as seguintes funções de macro predefinidas:

  • logicalStartTime()
  • secure()

Função lógica de horário de início

A função de macro logicalStartTime() retorna o horário de início lógico de uma execução do pipeline como um valor de string.

Se nenhum parâmetro for fornecido, o horário de início será retornado em milissegundos. Todos parâmetros são opcionais. A função usa um formato de hora, um deslocamento e uma fuso horário como argumentos e usa o horário de início lógico de um pipeline para executar para a substituição:

${logicalStartTime([timeFormat[,offset [,timezone])}

A lista a seguir mostra os parâmetros opcionais para logicalStartTime():

Parâmetro Descrição
timeFormat O padrão de formato de hora, no formato de um SimpleDateFormat Java.
offset
Ajuste de horário antes do horário de início lógico.
timezone
Fuso horário a ser usado para o horário de início lógico.

Exemplo

Neste exemplo, o horário de início lógico da execução de um pipeline é 2020-01-01T00:00:00 e você fornece a seguinte macro:

${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}

O formato é yyyy-MM-dd'T'HH-mm-ss, e o deslocamento é 1d-4h+30m antes do com uma hora de início lógica. No ambiente de execução, o valor da macro é substituído por 2019-12-31T03:30:00, porque a compensação é convertida em 20,5 horas. Toda a é avaliada como 20, 5 horas antes da meia-noite de 1o de janeiro de 2020.

Como usar logicalStartTime() em plug-ins baseados em arquivos

A maneira mais comum de usar essa função é no campo Caminho nos modelos plug-ins.

Incluir o horário de início do pipeline em milissegundos em um nome de arquivo

Para capturar o horário de início real em milissegundos em um nome de arquivo, omita os parâmetros. na função macro.

Exemplo

Neste exemplo, você inclui o horário de início do pipeline, em milissegundos, em um Nome de arquivo do Amazon S3:

sales_012345671011.csv

Nas propriedades do coletor do Amazon S3, insira o seguinte valor no campo Caminho campo:

s3a://sales-data/sales_${logicalStartTime()}.csv

Incluir a data de hoje em um nome de arquivo

É possível usar a função da macro logicalStartTime() em um nome de arquivo para capturar o data atual.

Exemplo

Neste exemplo, você captura a data de hoje com o seguinte nome de arquivo do S3:

s3a://sales-data/sales_20210204.csv

Nas propriedades do coletor do Amazon S3, insira o seguinte valor no campo Caminho campo:

s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv

Como usar logicalStartTime para adicionar um campo de carimbo de data/hora a registros estruturados

Para adicionar o carimbo de data/hora a um registro estruturado, use a opção Adicionar campo transformação e logicalStartTime().

  1. Faça o download do plug-in Transformação do Adicionar campo no Hub do Cloud Data Fusion. Depois de implantar o plug-in, ele aparece na lista Transform como Adicionar Campo.
  2. Ao configurar as propriedades do plug-in, adicione o carimbo de data/hora a um registro. Por exemplo, para o nome do campo, digite o nome do novo e, para o valor do campo, insira a macro logicalStartTime(). função.

Função segura

A função de macro secure() usa uma única chave como argumento e procura o valor da string associada da chave do Secure Store. Para fazer a substituição, a key fornecida como argumento já deve existem no armazenamento seguro. Isso é útil para realizar uma substituição com dados sensíveis.

Exemplo

Neste exemplo, para um plug-in que se conecta a um banco de dados MySQL, você configura no campo da propriedade de senha com o seguinte valor:

${secure(password)}

Essa macro extrai a senha do Secure Store no momento da execução.

Macros recursivas

As macros podem se referir recursivamente a outras macros até dez níveis. Macro são avaliados do mais interno para o mais externo.

Exemplo

Neste exemplo, você tem um servidor que faz referência a um nome do host e uma porta. Você forneça os argumentos de ambiente de execução a seguir. O último deles é uma macro que se refere a outras macros:

  • nome do host: examplepetstore.com
  • porta: 9991
  • server-address: ${hostname}:${port}

Em uma configuração de pipeline, use a seguinte expressão:

server-address: ${server-address}

No ambiente de execução, ele é substituído pelo seguinte valor:

examplepetstore.com:9991

A seguir