En este documento, se describen los métodos, las propiedades y las opciones de configuración de Dataform Core. Puedes usar Dataform Core en archivos SQLX y JavaScript.
assert()
assert
|
(name: string, query?: AContextable
|
Agrega una aserción de Dataform al gráfico compilado. Solo está disponible en el directorio |
Ejemplo:
// definitions/file.js
assert("name").query(ctx => "select 1");
CommonContext
Los métodos de contexto están disponibles cuando se evalúa código SQL que se puede contextualizar, como dentro de archivos SQLX, o cuando se usa un argumento Contextable
con Dataform Core.
database
|
() => string
|
Devuelve la base de datos de este conjunto de datos, si corresponde. | |
name
|
() => string
|
Devuelve el nombre de esta tabla. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Hace referencia a otra acción y la agrega como dependencia a esta acción, y devuelve SQL válido para usar en una expresión from .
Se puede llamar a esta función con un objeto
También se puede llamar a esta función con argumentos individuales para los valores de ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Es similar a ref , pero no agrega la acción a la que se hace referencia como una dependencia de esta acción.
|
|
self
|
() => string
|
Equivale a resolve(name()) .
Devuelve una cadena de SQL válida que se puede usar para hacer referencia a la tabla que produce esta acción. |
|
schema
|
() => string
|
Devuelve el esquema de este conjunto de datos. |
Contextual
Los argumentos contextuales pueden pasar un valor simple para su tipo genérico T
o una función que se llama con el objeto de contexto para este tipo de operación.
T | (ctx: Context) => T
Dataform
Variable global que contiene el objeto IProjectConfig.
Se requiere para obtener propiedades de IProjectConfig
, por ejemplo:
dataform.projectConfig.vars.myVariableName === "myVariableValue"
declare()
declare
|
(dataset: dataform.ITarget)
|
Declara el conjunto de datos como una fuente de datos de Dataform. Solo está disponible en el directorio |
Ejemplo:
// definitions/file.js
declare({name: "a-declaration"})
IActionConfig
Define las etiquetas de Dataform y las dependencias aplicadas a una acción del flujo de trabajo.
tags
|
string[]
|
Es una lista de etiquetas definidas por el usuario con las que se debe etiquetar la acción. |
|
dependencies
|
Resolvable| Resolvable[]
|
Son las dependencias de la acción. |
|
disabled
|
boolean
|
Si se establece como verdadero, no se ejecutará esta acción. Sin embargo, aún se puede depender de la acción. Es útil para desactivar temporalmente las acciones que no funcionan. |
IAssertionConfig
Son las opciones de configuración para los tipos de acciones assertion
.
database
|
string
|
Es la base de datos (ID del proyectoGoogle Cloud ) en la que se creará la vista correspondiente para esta aserción. | |
description
|
string
|
Es una descripción de esta aserción. | |
disabled
|
boolean
|
Si se configura en true , esta acción no se ejecuta.
Aún se puede depender de la acción. Es útil para desactivar temporalmente acciones que no funcionan.
|
|
hermetic
|
boolean
|
Declara si esta acción es hermética. Una acción es hermética si todas sus dependencias se declaran de forma explícita.
Si esta acción depende de datos de una fuente que no se declara como dependencia, establece |
|
schema
|
string
|
Es el esquema (conjunto de datos de BigQuery) en el que se creará la vista correspondiente para esta aserción. | |
tags
|
string[]
|
Es una lista de etiquetas definidas por el usuario que se aplican a esta acción. |
IBigQueryOptions
Son opciones de almacén específicas de BigQuery.
additionalOptions
|
|
Pares clave-valor para las opciones de tabla, vista y vista materializada.
Algunas opciones, como
Los valores de cadena deben estar entre comillas dobles, por ejemplo:
Si el nombre de la opción contiene caracteres especiales, inclúyelo entre comillas, por ejemplo: |
|
clusterBy
|
string[]
|
Son las claves por las que se agrupan las particiones en clústeres. | |
labels
|
|
Son pares clave-valor para las etiquetas de BigQuery.
Si el nombre de la etiqueta contiene caracteres especiales, por ejemplo, guiones, escribe su nombre entre comillas, por ejemplo, |
|
partitionBy
|
string
|
Es la clave por la que se particiona la tabla. Por lo general, es el nombre de una marca de tiempo o de la columna de fecha. | |
partitionExpirationDays
|
number
|
Cantidad de días durante los que BigQuery almacena datos en cada partición. El parámetro de configuración se aplica a todas las particiones de una tabla, pero se calcula de forma independiente para cada partición según el tiempo de partición. | |
requirePartitionFilter
|
boolean
|
Declara si la tabla particionada requiere un filtro de predicado de la cláusula WHERE que filtre la columna de partición.
|
|
updatePartitionFilter
|
string
|
Es un filtro basado en SQL para cuando se aplican actualizaciones incrementales. |
IColumnsDescriptor
Describe las columnas de una tabla.
{ [name]: string | IRecordDescriptor }
IDeclarationConfig
Son las opciones de configuración para los tipos de acciones declaration
.
columns
|
IColumnsDescriptor
|
Es una descripción de las columnas dentro de la tabla. | |
database
|
string
|
La base de datos (ID del proyectoGoogle Cloud ) en la que se creará la tabla de origen ya existe. | |
description
|
string
|
Es una descripción de la tabla. | |
schema
|
string
|
Es el esquema (conjunto de datos de BigQuery) en el que existe la tabla de origen. |
IDependenciesConfig
Define las dependencias de una acción del flujo de trabajo.
dependencies
|
Resolvable| Resolvable[]
|
Son una o más dependencias explícitas para esta acción. Las acciones de dependencia se ejecutarán antes que las acciones dependientes.
Por lo general, este parámetro no se establece, ya que la mayoría de las dependencias se declaran como un subproducto del uso de la función |
|
hermetic
|
boolean
|
Declara si esta acción es hermética o no. Una acción es hermética si todas sus dependencias se declaran de forma explícita. Si esta acción depende de datos de una fuente que no se declaró como dependencia, |
IDocumentableConfig
Define las descripciones de un conjunto de datos y sus columnas.
columns
|
IColumnsDescriptor
|
Es una descripción de las columnas dentro del conjunto de datos. |
|
description
|
string
|
Es una descripción del conjunto de datos. |
INamedConfig
Define el tipo y el nombre de una acción de flujo de trabajo.
type
|
string
|
Es el tipo de acción. |
|
name
|
string
|
Es el nombre de la acción. |
IOperationConfig
Son las opciones de configuración para los tipos de acciones operations
.
columns
|
IColumnsDescriptor
|
Es una descripción de las columnas dentro de la tabla. | |
database
|
string
|
Es la base de datos (ID del proyectoGoogle Cloud ) en la que se creará el resultado de esta acción. | |
description
|
string
|
Es una descripción de la tabla. | |
disabled
|
boolean
|
Si se configura en true , esta acción no se ejecuta.
Aún se puede depender de la acción.
Es útil para desactivar temporalmente las acciones que no funcionan.
|
|
hasOutput
|
boolean
|
Declara que esta acción operations crea una tabla a la que se puede hacer referencia con la función ref .
Si se configura como create or replace table ${self()} as select ...
|
|
hermetic
|
boolean
|
Declara si esta acción es hermética. Una acción es hermética si todas sus dependencias se declaran de forma explícita.
Si esta acción depende de datos de una fuente que no se declara como dependencia, establece |
|
schema
|
string
|
Es el esquema (conjunto de datos de BigQuery) en el que se creará el resultado de esta acción. | |
tags
|
string[]
|
Es una lista de etiquetas definidas por el usuario que se aplican a esta acción. |
IProjectConfig
Contiene la configuración de compilación de un repositorio de Dataform.
defaultDatabase
|
string
|
Obligatorio. Es la base de datos predeterminada (ID del proyectoGoogle Cloud ). | |
defaultSchema
|
string
|
Obligatorio. Es el esquema predeterminado (ID del conjunto de datos de BigQuery). | |
defaultLocation
|
string
|
Obligatorio. Es la ubicación predeterminada de BigQuery que se usará. Para obtener más información sobre las ubicaciones de BigQuery, consulta https://cloud.google.com/bigquery/docs/locations. | |
assertionSchema
|
string
|
Obligatorio. Es el esquema predeterminado (ID del conjunto de datos de BigQuery) para las aserciones. | |
vars
|
map (key: string, value: string)
|
Opcional. Son variables definidas por el usuario que están disponibles para el código del proyecto durante la compilación.
Un objeto que contiene una lista de pares "key": value .
Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" } .
|
|
databaseSuffix
|
string
|
Opcional. Es el sufijo que se debe agregar a todos los nombres de bases de datos (ID del proyectoGoogle Cloud ). | |
schemaSuffix
|
string
|
Opcional. Es el sufijo que se debe agregar a todos los nombres de esquemas (ID del conjunto de datos de BigQuery). | |
tablePrefix
|
string
|
Opcional. Es el prefijo que se debe anteponer a todos los nombres de las tablas. | |
warehouse
|
string
|
Obligatorio. Debe establecerse en bigquery .
|
Puedes establecer propiedades de IProjectConfig
en la configuración del flujo de trabajo a nivel del repositorio.
Puedes anular las propiedades defaultSchema
y defaultDatabase
para tablas individuales.
Puedes acceder a todas las propiedades de IProjectConfig
en una instrucción SELECT
de SQL en un archivo SQLX o JavaScript.
En la siguiente muestra de código, se muestra la variable de compilación personalizada myVariableName
establecida en la configuración del flujo de trabajo con la propiedad projectConfig.vars
, a la que se accede en una instrucción SELECT
en un archivo SQLX:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Para obtener más información sobre cómo anular la configuración del proyecto para los resultados de compilación individuales, consulta el recurso de REST projects.locations.repositories.compilationResults#CodeCompilationConfig
en la API de Dataform.
IRecordDescriptor
Describe un struct, un objeto o un registro en una tabla que tiene columnas anidadas.
bigqueryPolicyTags
|
string | string[]
|
Son los identificadores completos de las etiquetas de política de BigQuery que se aplican a esta columna. Un identificador completo de una etiqueta de política de BigQuery
incluye el nombre del proyecto, la ubicación y la taxonomía.
Por ejemplo: |
|
columns
|
IColumnsDescriptor
|
Es una descripción de las columnas dentro del struct, el objeto o el registro. | |
description
|
string
|
Es una descripción de la estructura, el objeto o el registro. |
ITableAssertions
Son opciones para crear aserciones como parte de una definición de tabla.
nonNull
|
string | string[]
|
Columnas que nunca pueden ser NULL .
Si se configura, la aserción correspondiente falla si alguna fila contiene valores |
|
rowConditions
|
string[]
|
Son las condiciones generales que deben cumplirse para todas las filas de la tabla.
Si se configura, la aserción correspondiente falla si alguna fila incumple alguna de estas condiciones. |
|
uniqueKey
|
string | string[]
|
Columnas que constituyen el índice de clave única de la tabla.
Si se configura, la aserción resultante falla si hay más de una fila en la tabla con los mismos valores para todas estas columnas. |
|
uniqueKeys
|
[]
|
Combinaciones de columnas, cada una de las cuales constituye un índice de clave único de la tabla.
Si se configura, la aserción resultante falla si hay más de una fila en la tabla con los mismos valores para todas las columnas de las claves únicas. |
ITableConfig
Son las opciones de configuración para las acciones de table
, incluidos los tipos de tabla table
, view
y incremental
.
Extiende IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig y ITargetableConfig.
assertions
|
ITableAssertions
|
Son las aserciones que se ejecutarán en la tabla.
Si se configura, se crean y ejecutan automáticamente las aserciones pertinentes como una dependencia de esta tabla. |
|
bigquery
|
IBigQueryOptions
|
Son opciones de almacén específicas de BigQuery. | |
columns
|
IColumnsDescriptor
|
Es una descripción de las columnas dentro de la tabla. | |
database
|
string
|
Es la base de datos (ID del proyectoGoogle Cloud ) en la que se creará el resultado de esta acción. | |
description
|
string
|
Es una descripción de la tabla. | |
disabled
|
boolean
|
Si se configura en true , esta acción no se ejecuta.
Aún se puede depender de la acción.
Es útil para desactivar temporalmente las acciones que no funcionan.
|
|
hermetic
|
boolean
|
Declara si esta acción es hermética. Una acción es hermética si todas sus dependencias se declaran de forma explícita.
Si esta acción depende de datos de una fuente que no se declara como dependencia, establece |
|
materialized
|
boolean
|
Solo es válido cuando el tipo de tabla es view .
Si se establece como verdadero, se creará una vista materializada. |
|
protected
|
boolean
|
Solo se permite para el tipo de tabla incremental .
Si se establece en verdadero, la ejecución de esta acción ignora la opción |
|
schema
|
string
|
Es el esquema (conjunto de datos de BigQuery) en el que se creará el resultado de esta acción. | |
tags
|
string[]
|
Es una lista de etiquetas definidas por el usuario que se aplican a esta acción. | |
type
|
TableType
|
El tipo de tabla. | |
uniqueKey
|
string[]
|
Son las claves únicas para los criterios de combinación de las tablas incrementales.
Si se configura, los registros con claves únicas coincidentes se actualizan en lugar de insertar filas nuevas. |
ITableContext
Los métodos de contexto están disponibles cuando se evalúa código SQL que se puede contextualizar, como dentro de archivos SQLX, o cuando se usa un argumento Contextable
con Dataform Core.
incremental
|
() => boolean
|
Devuelve verdadero cuando el contexto actual indica que la tabla se compilará de forma incremental. | |
name
|
() => string
|
Devuelve el nombre completamente calificado de esta tabla. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Hace referencia a otra acción y la agrega como dependencia de esta acción, y devuelve SQL válido para usar en una expresión from.
Se puede llamar a esta función con un objeto ${ref({ name: "name", schema: "schema", database: "database" })}
También se puede llamar a esta función con argumentos individuales para los valores de
Cuando solo se proporcionan dos valores, se usa la base de datos predeterminada y los valores se interpretan como Cuando solo se proporciona un valor, se usa el esquema de base de datos predeterminado, y el valor proporcionado se interpreta como"name". ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Es similar a ref , pero, en lugar de agregar una dependencia, resuelve la referencia proporcionada para que se pueda usar en SQL, por ejemplo, en una expresión "from".
|
|
self
|
() => string
|
Equivale a resolve(name()) .
Devuelve una cadena de SQL válida que se puede usar para hacer referencia a la tabla que produce esta acción. |
|
when
|
(cond: boolean, trueCase: string, falseCase: string) => string
|
Abreviatura de una condición if .
Equivale a cond ? trueCase : falseCase .
|
ITarget
Es una referencia a una tabla dentro de BigQuery.
database
|
string
|
name
|
string
|
schema
|
string
|
ITargetableConfig
Define la base de datos y el esquema de destino de una acción de flujo de trabajo.
database
|
string
|
Es la base de datos en la que se debe crear el resultado de esta acción. Debe establecerse en BigQuery. |
|
schema
|
string
|
Es el esquema en el que se debe crear el resultado de esta acción. |
operate()
operate
|
(name: string, queries?: Contextable
|
Define una operación de SQL. Solo está disponible en el directorio |
Ejemplo:
// definitions/file.js
operate("an-operation", ["SELECT 1", "SELECT 2"])
publish()
publish
|
(name: string, queryOrConfig?: Contextable
|
Crea una tabla o vista. Solo está disponible en el directorio |
Ejemplo:
// definitions/file.js
publish("published-table", {
type: "table",
dependencies: ["a-declaration"],
}).query(ctx => "SELECT 1 AS test");
Resoluble
Un elemento resoluble puede ser el nombre de una tabla como string
o el objeto que describe la ruta completa a la relación.
string | ITarget
TableType
Son los tipos de acciones de tabla admitidos.
Las tablas de tipo view
se crearán como vistas.
Las tablas de tipo table
se crearán como tablas.
Las tablas de tipo incremental
deben incluir una cláusula where
.
Para obtener más información, consulta Cómo configurar una tabla incremental.