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 pode ser reutilizado em vários repositórios do Dataform, é preciso criar um repositório do Dataform dedicado a ele e conectá-lo a um repositório Git de terceiros para disponibilizá-lo a outros repositórios do Dataform.

Em seguida, crie um arquivo index.js de nível superior e adicione o conteúdo do pacote exportável, como funções e constantes, ao arquivo. 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 do SQL.

Como alternativa à criação de um pacote, é possível reutilizar funções e constantes de 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 do Dataform.

    Acessar a página do Dataform

  2. Crie um repositório do Dataform dedicado ao pacote. Faça a correspondência do nome do repositório com o nome do 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 que conceda a você o papel de administrador do Dataform (roles/dataform.admin) nos repositórios. Para obter mais informações sobre como conceder papéis, consulte Gerenciar o acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Criar um pacote no Dataform

Para criar seu próprio pacote com código JavaScript que você pode reutilizar no Dataform, siga estas etapas no seu 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 Add a file path, insira index.js.

    3. Clique em Criar arquivo.

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

    1. Crie constantes no seguinte formato:

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

      Substitua:

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

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

    Substitua:

    • FUNCTION_NAME pelo nome da função.
    • PARAMETERS pelos parâmetros da função.
    • FUNCTION_BODY pelo código que você quer que a função execute.
  4. [Opcional] No diretório definitions, adicione o código do pacote que não será exportado.

  5. Confirme e envie as alterações.

A exemplo de código de pacote a seguir 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