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
No console do Google Cloud, acesse a página Dataform.
Crie um repositório do Dataform dedicado ao pacote. O nome do repositório precisa corresponder ao nome do seu 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 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:
No painel Arquivos, clique no menu Mais
.Clique em Criar arquivo.
No painel Criar novo arquivo, faça o seguinte:
No campo Adicionar um caminho de arquivo, insira
index.js
.Clique em 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 Formatar.
Opcional: no diretório
definitions
, adicione o código do pacote que não será exportado.
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
- 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 aprender a 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.