Núcleo do Dataform permite criar objetos de fluxo de trabalho do SQL com SQLX e JavaScript. Embora opcional, usar JavaScript junto com SQLX para criar elementos semelhantes repetidamente em seu fluxo de trabalho. Por exemplo, com JavaScript, você pode criar um visualização de cada tabela no fluxo de trabalho com determinados IDs de usuário removidos. Você também pode desenvolver objetos de fluxo de trabalho SQL exclusivamente com JavaScript.
Para começar a desenvolver fluxos de trabalho SQL do Dataform usando JavaScript, você precisa conhecer Sintaxe do JavaScript e os seguintes conceitos de JavaScript:
- Variáveis
- Matrizes
- Instruções condicionais
- Repetições for
- Maps
- remotas
- Objetos
- Como exportar e importar módulos
Adicionar código JavaScript a um arquivo SQLX
É possível adicionar código JavaScript a um arquivo SQLX de duas maneiras: inline ou dentro de um bloco JavaScript.
Você pode usar um bloco JavaScript para definir funções ou constantes em um arquivo SQLX. É possível usar JavaScript inline para modificar dinamicamente uma consulta SQLX ou SQL.
O exemplo de código abaixo mostra o núcleo do self
Dataform integrado
Função JavaScript adicionada in-line ao bloco post_operations
em um arquivo SQLX:
config {type: "table"}
SELECT * FROM ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
O exemplo de código a seguir mostra uma constante definida em um bloco JavaScript e usada em linha dentro de uma consulta em um arquivo SQLX:
js {
const columnName = "foo";
}
SELECT 1 AS ${columnName} FROM "..."
Reutilizar código com JavaScript
É possível reutilizar o código JavaScript para simplificar o desenvolvimento no Dataform. Para reutilizar constantes e funções JavaScript em um único arquivo SQLX, é possível encapsulá-los em um bloco de JavaScript. Para reutilizar o código JavaScript em um único repositório do Dataform, é possível criar inclusões. Para reutilizar o código JavaScript em vários repositórios do Dataform, é possível criar ou importar um pacote.
Reutilizar código em um único arquivo SQLX com encapsulamento de JavaScript
Para criar partes repetitivas do código SQL que podem ser reutilizadas no um único arquivo SQLX, é possível encapsular funções e constantes em um bloco de JavaScript. Só é possível reutilizar o código definido em um bloco JavaScript no arquivo SQLX em que o bloco está definido. Para mais informações, consulte Visão geral do Dataform Core.
O exemplo de código a seguir mostra uma constante e uma função definida em uma Bloco de JavaScript usado in-line em uma consulta em um arquivo SQLX:
js {
const foo = 1;
function bar(number){
return number+1;
}
}
select
${foo} as one,
${bar(foo)} as two
Reutilizar código em um único repositório com inclusões
Inclui constantes do JavaScript ou funções globais para seu repositório.
Você define inclusões no includes
do seu repositório. Depois, eles podem ser reutilizados em todo o repositório
em arquivos JavaScript e SQLX.
O exemplo de código a seguir mostra a definição da constante launch_date
.
no arquivo includes/constants.js
:
// filename is includes/constants.js
const launch_date = "11.11.2011";
module.exports = { launch_date };
O exemplo de código a seguir mostra a constante launch_date
referenciada em uma tabela.
consulta de definição dinâmica em um arquivo SQLX:
config {type: "table"}
SELECT * FROM source_table WHERE date > ${constants.launch_date}
Reutilize código em vários repositórios com pacotes
Os pacotes são coleções de código JavaScript que você pode importar e usar múltiplos repositórios do Dataform para simplificar o desenvolvimento do fluxo de trabalho SQL.
É possível criar seu próprio pacote personalizado no o Dataform ou usar um dos pacotes de código aberto do Dataform; disponíveis no Página do Dataform de código aberto do GitHub.
Para conferir um exemplo de como usar um pacote de código aberto no Dataform, consulte Usar as dimensões que mudam lentamente no Dataform (em inglês).
Para usar o conteúdo de um pacote no Dataform, você precisa: instalar o pacote no repositório do Dataform e importá-lo para o arquivo JavaScript ou SQLX individual em que você quer usar o pacote. Para mais informações, consulte Instalar um pacote no Dataform.
Para instalar um pacote NPM privado em um repositório do Dataform, autentique o pacote.
Criar fluxos de trabalho SQL em JavaScript
Como alternativa ao desenvolvimento de fluxos de trabalho SQL em SQLX, ou SQLX combinado com
JavaScript, é possível criar objetos de fluxo de trabalho SQL em arquivos .js
usando apenas
JavaScript. É possível criar vários objetos de fluxo de trabalho SQL em uma
com métodos globais do Dataform e código JavaScript ES5 arbitrário,
como loops e constantes. Cada elemento JavaScript global do Dataform
contêm propriedades que podem ser usadas para configurar os objetos criados.
É possível criar os seguintes objetos de fluxo de trabalho SQL usando apenas JavaScript no Dataform:
- Declarações de fonte de dados
- Tabelas
- Declarações manuais
- Operações SQL personalizadas
Para obter mais informações sobre como criar objetos de fluxo de trabalho SQL usando somente JavaScript, consulte Criar fluxos de trabalho SQL do Dataform com JavaScript.
A seguir
- Para aprender a reutilizar variáveis e funções com inclusões, consulte Reutilizar variáveis e funções com inclusões no Dataform
- Para aprender a criar um pacote, consulte Criar um pacote no Dataform
- Para aprender a instalar um pacote, consulte Instalar um pacote no Dataform
- Para saber como autenticar um pacote privado, consulte Autentique um pacote particular.
- Para aprender a usar um pacote de código aberto no Dataform, consulte Usar as dimensões que mudam lentamente no Dataform (em inglês).
- Para aprender como criar fluxos de trabalho SQL com JavaScript, consulte Criar fluxos de trabalho SQL do Dataform com JavaScript.