Criar um pacote no Dataform

Este documento mostra 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, é necessário 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, 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 conferir um exemplo de um pacote criado no Dataform, consulte dataform-package-base no GitHub.

Depois de criar o pacote, você pode 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, é possível reutilizar funções e constantes do JavaScript em um único repositório do Dataform com inclusões. Para mais informações, consulte Reutilizar código em um único repositório com includes.

Antes de começar

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

    Acesse a página do Dataform

  2. Crie um repositório do Dataform dedicado ao pacote. Combine o 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 do IAM Administrador do Dataform (roles/dataform.admin) nos repositórios. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de 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 seu espaço de trabalho:

  1. No painel Files, clique no menu More.

  2. Selecione Criar arquivo.

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

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

    3. Selecione 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 Formato.

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

  6. Confirme e envie suas alterações.

O 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