As macros são marcadores de posição nas configurações das propriedades do plug-in do Cloud Data Fusion. São representados por variáveis incluídas em ${ }
, como
${input_file_path}
. Para ativar a configuração dinâmica de elementos, como caminhos de ficheiros e nomes de tabelas, os marcadores de posição são substituídos por valores reais no momento da execução.
Quando visualiza as propriedades de um plug-in, pode adicionar uma macro a qualquer campo de propriedade que tenha um M junto ao mesmo. Para adicionar a macro, clique em M.
Para mais informações, consulte o artigo Faça a gestão de macros, preferências e argumentos de tempo de execução.
Funções de macro
Além das macros, pode usar as seguintes funções de macro predefinidas:
logicalStartTime()
secure()
Função Logical Start Time
A função de macro logicalStartTime()
devolve a hora de início lógica de uma execução da pipeline como um valor de string.
Se não forem fornecidos parâmetros, devolve a hora de início em milissegundos. Todos os parâmetros são opcionais. A função seleciona um formato de hora, um desvio e um fuso horário como argumentos e usa a hora de início lógica de um pipeline para fazer a substituição:
${logicalStartTime([timeFormat[,offset [,timezone])}
A lista seguinte mostra os parâmetros opcionais para logicalStartTime()
:
Parâmetro | Descrição |
---|---|
timeFormat |
O padrão de formato de hora, no formato de um SimpleDateFormat de Java. |
offset |
Desvio de tempo antes da hora de início lógica. |
timezone |
Fuso horário a usar para a hora de início lógica. |
Exemplo
Neste exemplo, a hora de início lógica de uma execução da pipeline é 2020-01-01T00:00:00
e 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 desvio é 1d-4h+30m
antes da hora de início lógica. Em tempo de execução, o valor da macro é substituído por 2019-12-31T03:30:00
porque o desvio corresponde a 20,5 horas. A macro inteira é avaliada como 20, 5 horas antes da meia-noite de 1 de janeiro de 2020.
Usar o logicalStartTime()
em plug-ins baseados em ficheiros
A forma mais comum de usar esta função é no campo Caminho em plug-ins baseados em ficheiros.
Incluir a hora de início do pipeline em milissegundos num nome de ficheiro
Para capturar a hora de início real em milissegundos num nome de ficheiro, omita os parâmetros na função de macro.
Exemplo
Neste exemplo, inclui a hora de início do pipeline, em milissegundos, num nome de ficheiro do Amazon S3:
sales_012345671011.csv
Nas propriedades do destino do Amazon S3, introduza o seguinte valor no campo Caminho:
s3a://sales-data/sales_${logicalStartTime()}.csv
Incluir a data de hoje num nome de ficheiro
Pode usar a função de macro logicalStartTime()
num nome de ficheiro para capturar a data atual.
Exemplo
Neste exemplo, captura a data de hoje no seguinte nome de ficheiro do S3:
s3a://sales-data/sales_20210204.csv
Nas propriedades do destino do Amazon S3, introduza o seguinte valor no campo Caminho:
s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv
Usar o logicalStartTime
para adicionar um campo de indicação de tempo a registos estruturados
Pode adicionar uma indicação de tempo a um registo estruturado através da transformação Adicionar campo
e logicalStartTime()
.
- Obtenha o plug-in Field Adder Transform a partir do Cloud Data Fusion Hub. Depois de implementar o plug-in, este é apresentado na lista Transformar como Adicionar campo.
- Quando configurar as propriedades do plug-in, adicione a data/hora a um registo estruturado. Por exemplo, para o nome do campo, introduza o nome do novo campo e, para o valor do campo, introduza a função de macro
logicalStartTime()
.
Função segura
A função de macro secure()
recebe uma única chave como argumento e procura o valor de string associado da chave no armazenamento seguro.
Para realizar a substituição, a chave fornecida como argumento já tem de existir no armazenamento seguro. Isto é útil para fazer uma substituição com dados confidenciais.
Exemplo
Neste exemplo, para um plug-in que se liga a uma base de dados MySQL, configura o campo da propriedade de palavra-passe com o seguinte valor:
${secure(password)}
Esta macro extrai a palavra-passe do armazenamento seguro no momento da execução.
Macros recursivas
As macros podem referir-se recursivamente a outras macros até dez níveis. Os argumentos das macros são avaliados do argumento mais interior para o mais exterior.
Exemplo
Neste exemplo, tem um servidor que faz referência a um nome de anfitrião e a uma porta. Fornece os seguintes argumentos de tempo de execução, o último dos quais é uma macro que se refere a outras macros:
- hostname:
examplepetstore.com
- port:
9991
- server-address:
${hostname}:${port}
Numa configuração de pipeline, usa a seguinte expressão:
server-address: ${server-address}
Em tempo de execução, é substituído pelo seguinte valor:
examplepetstore.com:9991
O que se segue?
Saiba mais sobre macros, preferências e argumentos de tempo de execução.
Saiba como usar modelos de plugins.