Criar um pacote no Dataform

Neste documento, mostramos como criar um pacote JavaScript personalizado que pode ser usado para desenvolver fluxos de trabalho SQL no Dataform.

Para criar um pacote que possa ser reutilizado em vários repositórios do Dataform, você precisa criar um repositório do Dataform dedicado ao pacote e conectá-lo a um repositório Git de terceiros para disponibilizá-lo a outros repositórios do Dataform.

Em seguida, é necessário criar um arquivo index.js de nível superior e adicionar ao arquivo o conteúdo do pacote exportável, como funções e constantes. Para ver um exemplo de um pacote criado no Dataform, consulte dataform-package-base no GitHub.

Depois de criar o pacote, é possível instalá-lo em um repositório diferente do Dataform e usar o conteúdo exportável no pacote, como constantes e funções, para desenvolver fluxos de trabalho SQL.

Como alternativa à criação de um pacote, você pode reutilizar funções e constantes JavaScript em um único repositório do Dataform com inclusões. Para mais informações, consulte Reutilizar variáveis e funções com inclusões no Dataform.

Antes de começar

  1. No console do Google Cloud, acesse a página Dataform.

    Acessar a página do Dataform

  2. Crie um repositório do Dataform dedicado ao pacote. O nome do repositório precisa corresponder ao nome do seu pacote.

  3. Conecte o repositório a um repositório Git de terceiros que hospedará seu pacote.

  4. Crie e inicialize um espaço de trabalho no repositório do Dataform.

Funções exigidas

Para receber as permissões necessárias para criar um pacote, peça ao administrador para conceder a você o papel do IAM de Administrador do Dataform (roles/dataform.admin) nos repositórios. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Talvez você também consiga receber as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.

Criar um pacote no Dataform

Para criar seu próprio pacote com código JavaScript que pode ser reutilizado no Dataform, siga estas etapas no espaço de trabalho:

  1. No painel Arquivos, clique no menu Mais .

  2. Clique em Criar arquivo.

    1. No painel Criar novo arquivo, faça o seguinte:

    2. No campo Adicionar um caminho de arquivo, insira index.js.

    3. Clique em Criar arquivo.

  3. No arquivo index.js, insira o código JavaScript que você quer que o pacote exporte.

    1. Crie constantes no seguinte formato:

      const CONSTANT_NAME = CONSTANT_VALUE;
      module.exports = { CONSTANT_NAME };
      

      Substitua:

      • CONSTANT_NAME: o nome da constante
      • CONSTANT_VALUE: o valor da constante
    2. Crie funções no seguinte formato:

    function FUNCTION_NAME(PARAMETERS) { FUNCTION_BODY }
    
    module.exports = { FUNCTION_NAME }
    

    Substitua:

    • FUNCTION_NAME: o nome da sua função
    • PARAMETERS: os parâmetros da função
    • FUNCTION_BODY: o código que você quer que a função execute.
  4. Opcional: clique em Formatar.

  5. Opcional: no diretório definitions, adicione o código do pacote que não será exportado.

  6. Confirme e push as alterações.

O exemplo de código de pacote abaixo mostra o arquivo index.js do pacote postoffice que exporta a função getDomain:

// filename index.js
// package name postoffice

const GENERIC_DOMAINS = "('samplemail.com','samplemail.co.uk','examplemailbox.com'";

function getDomain(email) {
  let cleanEmail = `trim(${email})`
  const domain = `substr(${cleanEmail}, strpos(${cleanEmail}, '@') + 1)`;
  return `case
            when ${domain} in ${common.GENERIC_DOMAINS} then ${cleanEmail}
            when ${domain} = "othermailbox.com" then "other.com"
            when ${domain} = "mailbox.com" then "mailbox.global"
            when ${domain} = "support.postman.com" then "postman.com"
            else ${domain}
          end`;
}

module.exports = { getDomain }

A seguir