Núcleo de Dataform te permite crear objetos de flujo de trabajo de SQL con SQLX y JavaScript. Aunque es opcional, se usa JavaScript junto con SQLX para crear elementos similares repetidamente en tu flujo de trabajo. Por ejemplo, con JavaScript puedes crear un de cada tabla de tu flujo de trabajo sin ciertos IDs de usuario. También puedes desarrollar objetos de flujo de trabajo de SQL exclusivamente con JavaScript.
Para comenzar a desarrollar flujos de trabajo de SQL de Dataform con JavaScript, debes estar familiarizado con Sintaxis de JavaScript y los siguientes conceptos de JavaScript:
- Variables
- Arrays
- Instrucciones condicionales
- Bucles
- Maps
- Funciones
- Objetos
- Importar y exportar módulos
Agrega código JavaScript a un archivo SQLX
Puedes agregar código JavaScript a un archivo SQLX de dos maneras: intercaladas o dentro de un bloque de JavaScript.
Puedes usar un bloque de JavaScript para definir funciones o constantes en un archivo SQLX. Puedes usar JavaScript intercalado para modificar dinámicamente una consulta de SQLX o SQL.
En la siguiente muestra de código, se observa el núcleo de Dataform self
integrado.
Se agregó la función de JavaScript de forma intercalada al bloque post_operations
en un archivo SQLX:
config {type: "table"}
SELECT * FROM ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
El siguiente muestra de código muestra una constante definida en un bloque de JavaScript y se usa intercalado dentro de una consulta en un archivo SQLX:
js {
const columnName = "foo";
}
SELECT 1 AS ${columnName} FROM "..."
Vuelve a usar código con JavaScript
Puedes volver a usar el código JavaScript para optimizar el desarrollo en Dataform. Para reutilizar las constantes y funciones de JavaScript en un único archivo SQLX, puedes encapsularlas en un bloque de JavaScript. Para reutilizar el código JavaScript en un solo repositorio de Dataform, puedes crear inclusiones. Para volver a usar el código JavaScript en varios repositorios de Dataform, sigue estos pasos: puedes crear o importar un paquete.
Volver a usar código en un solo archivo SQLX con encapsulamiento de JavaScript
Para crear partes repetitivas del código SQL que puedas volver a utilizar un solo archivo SQLX, puedes encapsular funciones y constantes en un bloque de JavaScript. Solo puedes reutilizar el código definido en un bloque de JavaScript dentro del archivo SQLX donde se define el bloque. Para obtener más información, consulta Descripción general de Dataform Core.
El siguiente muestra de código muestra una constante y una función definidas en un Bloque de JavaScript que se usa intercalado en una consulta en un archivo SQLX:
js {
const foo = 1;
function bar(number){
return number+1;
}
}
select
${foo} as one,
${bar(foo)} as two
Vuelve a usar código en un solo repositorio con inclusiones
Las inclusiones son constantes de JavaScript o funciones globales para tu repositorio.
Debes definir inclusiones en includes
.
de tu repositorio. Luego, puedes volver a usarlos en tu repositorio
en archivos JavaScript y SQLX.
En la siguiente muestra de código, se muestra la definición de la constante launch_date
En el archivo includes/constants.js
:
// filename is includes/constants.js
const launch_date = "11.11.2011";
module.exports = { launch_date };
En la siguiente muestra de código, se observa la constante launch_date
a la que se hace referencia en una tabla.
definición en un archivo SQLX:
config {type: "table"}
SELECT * FROM source_table WHERE date > ${constants.launch_date}
Vuelve a usar código en varios repositorios con paquetes
Los paquetes son colecciones de código JavaScript que puedes importar y usar de varios repositorios de Dataform para optimizar el desarrollo de flujos de trabajo de SQL.
Puedes crear tu propio paquete personalizado en Dataform o usa uno de los paquetes de Dataform de código abierto. disponibles en la Página de GitHub de código abierto de Dataform.
Para ver un ejemplo de cómo usar un paquete de código abierto en Dataform, consulta Usa dimensiones que cambian lentamente en Dataform.
Para poder usar el contenido de un paquete en Dataform, debes hacer lo siguiente: instala el paquete en tu repositorio de Dataform y, luego, impórtalo el archivo individual JavaScript o SQLX en el que quieres usar el paquete. Para obtener más información, consulta Instala un paquete en Dataform.
Para poder instalar un paquete de NPM privado en un repositorio de Dataform, sigue estos pasos: debes autenticar el paquete.
Crear flujos de trabajo de SQL en JavaScript
Como alternativa al desarrollo de flujos de trabajo de SQL en SQLX, o SQLX combinado con
JavaScript, puedes crear objetos de flujo de trabajo de SQL en archivos .js
usando solo
JavaScript: Puedes crear varios objetos de flujo de trabajo de SQL en un solo JavaScript
con métodos globales de Dataform y código arbitrario de JavaScript ES5.
como bucles y constantes. Cada uno del Dataform JavaScript globales
tienen propiedades que puedes usar para configurar los objetos creados.
Puedes crear los siguientes objetos de flujo de trabajo de SQL usando solo JavaScript en Dataform:
- Declaraciones de fuentes de datos
- Tablas
- Aserciones manuales
- Operaciones de SQL personalizadas
Para obtener más información sobre cómo crear objetos de flujo de trabajo de SQL solo con JavaScript, consulta Crea flujos de trabajo de SQL de Dataform con JavaScript.
¿Qué sigue?
- Para aprender a reutilizar variables y funciones con inclusiones, consulta Vuelve a usar variables y funciones con inclusiones en Dataform.
- Para aprender a crear un paquete, consulta Crea un paquete en Dataform.
- Para obtener información sobre cómo instalar un paquete, consulta Instala un paquete en Dataform.
- Para saber cómo autenticar un paquete privado, consulta Autentica un paquete privado.
- Si quieres aprender a usar un paquete de código abierto en Dataform, consulta Usa dimensiones que cambian lentamente en Dataform.
- Para aprender a crear flujos de trabajo de SQL con JavaScript, consulta Crea flujos de trabajo de SQL de Dataform con JavaScript.