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
No Console do Google Cloud, acesse a página Dataform.
Crie um repositório do Dataform dedicado ao pacote. Combine o nome do repositório com o nome do pacote.
Conecte o repositório a um repositório Git de terceiros que hospedará seu pacote.
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:
No painel Files, clique no menu
More.Selecione Criar arquivo.
No painel Criar novo arquivo, faça o seguinte:
No campo Adicionar um caminho de arquivo, insira
index.js
.Selecione Criar arquivo.
No arquivo
index.js
, insira o código JavaScript que você quer que o pacote exporte.Crie constantes no seguinte formato:
const CONSTANT_NAME = CONSTANT_VALUE; module.exports = { CONSTANT_NAME };
Substitua:
CONSTANT_NAME
: o nome da constanteCONSTANT_VALUE
: o valor da constante.
Crie funções no seguinte formato:
function FUNCTION_NAME(PARAMETERS) { FUNCTION_BODY } module.exports = { FUNCTION_NAME }
Substitua:
FUNCTION_NAME
: o nome da sua funçãoPARAMETERS
: os parâmetros da funçãoFUNCTION_BODY
: o código que você quer que a função execute
Opcional: clique em Formato.
Opcional: no diretório
definitions
, adicione o código do pacote que não será exportado.
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
- Para saber como instalar seu pacote em um repositório e importar o conteúdo em arquivos JavaScript ou SQLX, consulte Instalar um pacote no Dataform.
- Para saber mais sobre pacotes no Dataform, consulte Reutilizar código em vários repositórios com pacotes.
- Para saber como escrever variáveis e funções JavaScript que podem ser reutilizadas no Dataform, consulte Reutilizar código em um único repositório com inclusões.