Para usar un paquete en Dataform, debes instalarlo en tu repositorio.
Puedes instalar los siguientes tipos de paquetes en Dataform:
- Se publicaron paquetes públicos de NPM.
- Paquetes públicos de NPM no publicados
- Paquetes de NPM privados autenticados
Luego, para usar el paquete en un archivo JavaScript o SQLX, debes importar el contenido seleccionado del paquete al archivo. También puedes importar un paquete completo a un archivo JavaScript o SQLX, en lugar de su contenido seleccionado.
Antes de comenzar
En la consola de Google Cloud, ve a la página Dataform.
Selecciona o crea un repositorio.
Selecciona o crea un lugar de trabajo de desarrollo.
[Opcional] Para instalar un paquete privado, autentica el paquete privado.
Funciones obligatorias
Si quieres obtener los permisos que necesitas para importar un paquete,
pídele a tu administrador que te otorgue el
rol de IAM Editor de Dataform (roles/dataform.editor
) en los lugares de trabajo.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.
Instala un paquete en un repositorio de Dataform
Para instalar un paquete dentro de un repositorio de Dataform, debes
agregarlo como una dependencia en el archivo package.json
. El formato de la definición de dependencia en el archivo package.json
depende del tipo de paquete. Si no tienes un archivo package.json
porque tu archivo workflow_settings.yaml
especifica tu dataformCoreVersion
, quita el dataformCoreVersion
de workflow_settings.yaml
y, luego, crea un archivo package.json
y agrega @dataform/core
como dependencia.
Para instalar un paquete en un repositorio de Dataform, sigue estos pasos:
- En tu lugar de trabajo, en el panel Files, selecciona
package.json
. Agrega el paquete al bloque
dependencies
:Agrega un paquete público de NPM publicado en el siguiente formato:
"PACKAGE-NAME": "PACKAGE-VERSION"
Reemplaza lo siguiente:
- PACKAGE-NAME por el nombre del paquete
- PACKAGE-VERSION por la versión más reciente del paquete de NPM público publicado
Agrega un paquete de NPM público no publicado en el siguiente formato:
"PACKAGE-NAME": "PACKAGE-URL"
Reemplaza lo siguiente:
- PACKAGE-NAME por el nombre del paquete
- PACKAGE-URL por la URL
tar.gz
del repositorio de paquetes de terceros, por ejemplo,https://github.com/user/sample-package-repository/archive/master.tar.gz
Agrega un paquete de NPM privado autenticado en el siguiente formato:
"REGISTRY-SCOPE/PACKAGE-NAME": "PACKAGE-URL"
Reemplaza lo siguiente:
- REGISTRY-SCOPE por el nombre del paquete
REGISTRY-SCOPE debe coincidir con el permiso del registro definido en el archivo
.nmprc
de tu repositorio. - PACKAGE-NAME por el nombre del paquete
- PACKAGE-URL por la URL
tar.gz
del repositorio de paquetes, por ejemplo,https://github.com/user/sample-package-repository/archive/master.tar.gz
- REGISTRY-SCOPE por el nombre del paquete
REGISTRY-SCOPE debe coincidir con el permiso del registro definido en el archivo
Haz clic en Install packages.
En la siguiente muestra de código, se observa el paquete de paquetes de dimensiones público de código abierto que se agregó al archivo .package.json
:
```
{
"name": "repository-name",
"dependencies": {
"@dataform/core": "2.0.3",
"dataform-scd": "https://github.com/dataform-co/dataform-scd/archive/0.3.tar.gz"
}
}
```
Importa una función de paquete o una constante a un archivo JavaScript en Dataform
Para usar una función o una constante de un paquete dentro de un archivo JavaScript en Dataform, primero debes importarla al archivo.
Para importar una función o una constante de un paquete a un archivo JavaScript, sigue estos pasos:
- En tu lugar de trabajo, en el panel Files, selecciona un archivo
.js
en el que quieras usar el paquete. En el archivo, importa una función o una constante en el siguiente formato:
const { EXPORT-NAME } = require("PACKAGE-NAME");
- Reemplaza EXPORT-NAME por el nombre de la función o la constante que quieres usar, declarado en
module.exports
en el archivoindex.js
del paquete. - Reemplaza PACKAGE-NAME por el nombre del paquete que deseas usar.
- Reemplaza EXPORT-NAME por el nombre de la función o la constante que quieres usar, declarado en
En la siguiente muestra de código, se ve la función getDomain
del paquete postoffice
importado y usado en un archivo JavaScript:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
const { getDomain } = require("postoffice");
getDomain();
Importa un paquete completo a un archivo JavaScript en Dataform
Para importar todo el paquete a un archivo JavaScript en lugar de importar las funciones o constantes seleccionadas a un archivo JavaScript, sigue estos pasos:
- En tu lugar de trabajo, en el panel Files, selecciona un archivo
.js
en el que quieras usar el paquete. En el archivo, importa el paquete en el siguiente formato:
const CONSTANT-NAME = require("PACKAGE-NAME");
- Reemplaza CONSTANT-NAME por un nombre para la constante.
- Reemplaza PACKAGE-NAME por el nombre del paquete que deseas usar.
En la siguiente muestra de código, se incluye la función getDomain
del paquete postoffice
importado que se usa en un archivo JavaScript:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
const postoffice = require("postoffice");
postoffice.getDomain();
Importa una función de paquete o una constante a un archivo SQLX en Dataform
Para usar una función o una constante de un paquete dentro de un archivo SQLX, primero debes importarla al archivo.
Para importar una función o una constante de un paquete a un archivo SQLX, sigue estos pasos:
- En tu lugar de trabajo, en el panel Files, selecciona un archivo
.sqlx
en el que quieras usar el paquete. En el archivo, ingresa el siguiente bloque
js
:js { const { EXPORT-NAME } = require("PACKAGE-NAME"); }
- Reemplaza EXPORT-NAME por el nombre de la función
o la constante que quieres usar, declarado en
module.exports
en el archivoindex.js
del paquete. - Reemplaza PACKAGE-NAME por el nombre del paquete que deseas usar.
- Reemplaza EXPORT-NAME por el nombre de la función
o la constante que quieres usar, declarado en
En la siguiente muestra de código, se puede ver la función getDomain
del paquete postoffice
importado en un bloque js
y que se usa en una declaración SELECT
de un archivo SQLX:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
config {
type: "table",
}
js {
const { getDomain } = require("postoffice");
}
SELECT ${getDomain("email")} as test
Importa un paquete completo a un archivo SQLX en Dataform
Para importar todo el paquete a un archivo SQLX en lugar de importar funciones o constantes seleccionadas a un archivo JavaScript, sigue estos pasos:
- En tu lugar de trabajo, en el panel Files, selecciona un archivo
.sqlx
en el que quieras usar el paquete. En el archivo, importa el paquete en el siguiente formato:
js { const CONSTANT-NAME = require("PACKAGE-NAME"); }
- Reemplaza CONSTANT-NAME por un nombre para la constante.
- Reemplaza PACKAGE-NAME por el nombre del paquete que deseas usar.
En la siguiente muestra de código, se ve el paquete postoffice
importado en un bloque js
y su función getDomain
utilizada en una declaración SELECT
en un archivo SQLX:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
config {
type: "table",
}
js {
const postoffice = require("postoffice");
}
SELECT ${postoffice.getDomain("email")} as test
¿Qué sigue?
- Para obtener información sobre cómo autenticar un paquete de NPM privado en Dataform, consulta Autentica un paquete privado en Dataform.
- Para obtener más información sobre los paquetes en Dataform, consulta Reutiliza el código en varios repositorios con paquetes.
- Si quieres obtener información para crear tu propio paquete en Dataform, consulta Crea un paquete en Dataform.
- Si deseas obtener información para usar un paquete de código abierto en Dataform, consulta Cómo usar dimensiones que cambian lentamente en Dataform.