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 tabelas, 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 de execução.
Funções de 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 método vai retornar o horário de início em milissegundos. Tudo 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 de uma execução de 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 momento da execução, o valor da macro é substituído por
2019-12-31T03:30:00
porque o deslocamento é traduzido para 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
Como 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 de sink do Amazon S3, insira o seguinte valor no campo Path:
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()
.
- 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.
- 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 macro secure()
usa uma única chave como argumento e procura
o valor da string associado à chave na Secure Store.
Para realizar a substituição, a chave fornecida como um argumento já precisa
existir no Secure Store. Isso é útil para realizar uma substituição com
e 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 da Secure Store no momento da execução.
Macros recursivas
As macros podem se referir recursivamente a outras macros até dez níveis. Os argumentos de macro são avaliados do argumento 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 momento da execução, ele é substituído pelo seguinte valor:
examplepetstore.com:9991
A seguir
Saiba mais sobre macros, preferências e argumentos do ambiente de execução.
Saiba como usar os modelos de plug-in.