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
No Console do Google Cloud, acesse a página do Dataform.
Crie um repositório do Dataform dedicado ao pacote. Faça a correspondência do 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 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:
No painel Arquivos, clique no menu
Mais.
Clique em Criar arquivo.
No painel Criar novo arquivo, faça o seguinte:
No campo Add a file path, insira
index.js
.Clique em Criar arquivo.
No arquivo
index.js
, insira o código JavaScript que você quer que seu pacote exporte.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.
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.
[Opcional] No diretório
definitions
, adicione o código do pacote que não será exportado.
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
- Para saber como instalar o pacote em um repositório e importar o conteúdo dele 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 variáveis e funções com inclusões no Dataform.