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 privados de NPM 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.
Para evitar problemas con la instalación de paquetes en tu entorno de producción, te recomendamos que hagas lo siguiente:
Especifica de forma explícita la versión del paquete en
package.json
, por ejemplo,3.0.0
. No uses otras opcionesdependencies
depackage.json
, por ejemplo,>version
.Probar versiones nuevas de paquetes en un entorno que no sea de producción Para obtener más información sobre la configuración de diferentes entornos de ciclo de vida del código, consulta Cómo administrar el ciclo de vida del código.
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.
Si tu repositorio no contiene un archivo
package.json
, creapackage.json
y mueve el paquete principal de Dataform.Opcional: Para instalar un paquete privado, autenticarlo.
Roles obligatorios
Para obtener los permisos que necesitas para instalar un paquete, pídele a tu administrador que te otorgue el rol de IAM Editor de Dataform (roles/dataform.editor
) en los espacios de trabajo.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Instala un paquete
Para instalar un paquete dentro de un repositorio de Dataform, debes agregarlo como una dependencia en el archivo package.json
.
Para agregar un paquete como dependencia en el archivo package.json
, haz lo siguiente:
- 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 con el siguiente formato:
"PACKAGE-NAME": "PACKAGE-VERSION"
Reemplaza lo siguiente:
- PACKAGE-NAME por el nombre del paquete.
- PACKAGE-VERSION con la versión más reciente del paquete público de NPM publicado. Para evitar problemas con la instalación del paquete, especifica la versión de forma explícita, por ejemplo,
3.0.0
.
Agrega un paquete público de NPM no publicado con el siguiente formato:
"PACKAGE-NAME": "PACKAGE-URL"
Reemplaza lo siguiente:
- PACKAGE-NAME por el nombre del paquete.
- PACKAGE-URL con 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 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 alcance del registro definido en el archivo
.nmprc
de tu repositorio. - PACKAGE-NAME por el nombre del paquete.
- PACKAGE-URL con 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 alcance del registro definido en el archivo
Haz clic en Install packages.
En la siguiente muestra de código, se muestra el paquete público de código abierto de dimensiones que cambian lentamente agregado al archivo .package.json
:
```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 o constante de paquete 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 espacio de trabajo, en el panel Files, selecciona un archivo
.js
en el que deseas usar el paquete. En el archivo, importa una función o una constante con el siguiente formato:
const { EXPORT-NAME } = require("PACKAGE-NAME");
- Reemplaza EXPORT-NAME por el nombre de la función o constante que deseas 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 constante que deseas usar, declarado en
En la siguiente muestra de código, se muestra la función getDomain
del paquete postoffice
importada y usada 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 funciones o constantes seleccionadas a un archivo JavaScript, sigue estos pasos:
- En tu espacio de trabajo, en el panel Files, selecciona un archivo
.js
en el que quieras usar el paquete. En el archivo, importa el paquete con 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 muestra 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 o constante de paquete 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 espacio de trabajo, en el panel Files, selecciona un archivo
.sqlx
en el que deseas 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 constante que deseas usar, declarada 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 constante que deseas usar, declarada en
En la siguiente muestra de código, se muestra la función getDomain
del paquete postoffice
importada en un bloque js
y utilizada en una sentencia SELECT
en 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 espacio de trabajo, en el panel Files, selecciona un archivo
.sqlx
en el que deseas usar el paquete. En el archivo, importa el paquete con 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 muestra el paquete postoffice
importado en un bloque js
y su función getDomain
que se usa en una sentencia 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 privado de NPM en Dataform, consulta Cómo autenticar un paquete privado en Dataform.
- Para obtener información sobre cómo administrar el paquete principal de Dataform requerido, consulta Administra el paquete principal de Dataform.
- Para aprender a crear tu propio paquete en Dataform, consulta Crea un paquete en Dataform.
- Para obtener información sobre cómo usar un paquete de código abierto en Dataform, consulta Cómo usar dimensiones que cambian con lentitud en Dataform.