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
|
Añade una aserción de Dataform al gráfico compilado. Solo disponible en el directorio |
Ejemplo:
// definitions/file.js
assert("name").query(ctx => "select 1");
CommonContext
Los métodos de contexto están disponibles al evaluar código SQL contextual, como en archivos SQLX, o al usar un argumento Contextable
con Dataform Core.
database
|
() => string
|
Devuelve la base de datos de este conjunto de datos, si procede. | |
name
|
() => string
|
Devuelve el nombre de esta tabla. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Hace referencia a otra acción y la añade como dependencia de esta acción.
Devuelve SQL válido para usarlo en una expresión from .
Esta función se puede llamar con un objeto
También se puede llamar a esta función usando 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 añade la acción a la que se hace referencia como dependencia de esta acción.
|
|
self
|
() => string
|
Equivalente a resolve(name()) .
Devuelve una cadena SQL válida que se puede usar para hacer referencia a la tabla generada por esta acción. |
|
schema
|
() => string
|
Devuelve el esquema de este conjunto de datos. |
Contextable
Los argumentos contextuales pueden transferir un valor simple para su tipo genérico T
o una función a la que se llama con el objeto de contexto de este tipo de operación.
T | (ctx: Context) => T
Dataform
Variable global que contiene el objeto IProjectConfig.
Obligatorio para obtener propiedades de IProjectConfig
. Por ejemplo:
dataform.projectConfig.vars.myVariableName === "myVariableValue"
declare()
declare
|
(dataset: dataform.ITarget)
|
Declara el conjunto de datos como fuente de datos de Dataform. Solo disponible en el directorio |
Ejemplo:
// definitions/file.js
declare({name: "a-declaration"})
defaultLocation
La propiedad defaultLocation
especifica la ubicación predeterminada del conjunto de datos de BigQuery. Dataform usa esta ubicación para procesar tu código y almacenar los resultados. Esta ubicación de tratamiento debe coincidir con la de tus conjuntos de datos de BigQuery. Sin embargo, no tiene por qué coincidir con la ubicación del repositorio de Dataform.
Si no define la propiedad defaultLocation
, Dataform determinará la ubicación en función de los conjuntos de datos a los que haga referencia su consulta de SQL. Funciona de la siguiente manera:
- Si tu consulta hace referencia a conjuntos de datos de la misma ubicación, Dataform usará esa ubicación.
- Si tu consulta hace referencia a conjuntos de datos de dos o más ubicaciones diferentes, se produce un error. Para obtener más información sobre esta limitación, consulta el artículo Réplica de conjuntos de datos entre regiones.
- Si tu consulta no hace referencia a ningún conjunto de datos, la ubicación predeterminada de Dataform es la
US
multirregión. Para elegir otra ubicación, define la propiedaddefaultLocation
. También puedes usar la variable de sistema@@location
en tu consulta.
Para obtener más información, consulta Especificar ubicaciones.
IActionConfig
Define las etiquetas de Dataform y las dependencias aplicadas a una acción de flujo de trabajo.
tags
|
string[]
|
Lista de etiquetas definidas por el usuario con las que se debe etiquetar la acción. |
|
dependencies
|
Resolvable| Resolvable[]
|
Dependencias de la acción. |
|
disabled
|
boolean
|
Si se le asigna el valor true, esta acción no se ejecutará. Sin embargo, se puede seguir dependiendo de la acción. Útil para desactivar temporalmente las acciones que no funcionan. |
IAssertionConfig
Opciones de configuración de los tipos de acciones assertion
.
database
|
string
|
La base de datos (Google Cloud ID de proyecto) en la que se creará la vista correspondiente a esta aserción. | |
description
|
string
|
Descripción de esta aserción. | |
disabled
|
boolean
|
Si se le asigna el valor true , esta acción no se ejecuta.
La acción aún se puede usar como dependencia. Ú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 explícitamente.
Si esta acción depende de datos de una fuente que no se ha declarado como dependencia, asigna el valor |
|
schema
|
string
|
El esquema (conjunto de datos de BigQuery) en el que se creará la vista correspondiente a esta aserción. | |
tags
|
string[]
|
Lista de etiquetas definidas por el usuario aplicadas a esta acción. |
IBigQueryOptions
Opciones de almacén específicas de BigQuery.
additionalOptions
|
|
Pares clave-valor de las opciones tabla, vista y vista materializada.
Algunas opciones, como
Los valores de cadena deben incluirse entre comillas dobles. Por ejemplo:
Si el nombre de la opción contiene caracteres especiales, inclúyelo entre comillas, por ejemplo: |
|
clusterBy
|
string[]
|
Las claves por las que se agrupan las particiones. | |
labels
|
|
Pares clave-valor de las etiquetas de BigQuery.
Si el nombre de la etiqueta contiene caracteres especiales, como guiones, debe ponerlo entre comillas. Por ejemplo: |
|
partitionBy
|
string
|
La clave por la que se particiona la tabla. Normalmente, el nombre de una marca de tiempo o de la columna de fecha. | |
partitionExpirationDays
|
number
|
Número de días durante los que BigQuery almacena datos en cada partición. El ajuste se aplica a todas las particiones de una tabla, pero se calcula de forma independiente para cada partición en función de la hora de la partición. | |
requirePartitionFilter
|
boolean
|
Declara si la tabla con particiones requiere un filtro de predicado de la cláusula WHERE
que filtre la columna de partición.
|
|
updatePartitionFilter
|
string
|
Filtro basado en SQL para determinar cuándo se aplican las actualizaciones incrementales. |
IColumnsDescriptor
Describe las columnas de una tabla.
{ [name]: string | IRecordDescriptor }
IDeclarationConfig
Opciones de configuración de los tipos de acciones declaration
.
columns
|
IColumnsDescriptor
|
Una descripción de las columnas de la tabla. | |
database
|
string
|
La base de datos (ID de proyectoGoogle Cloud ) en la que se va a crear la tabla de origen. | |
description
|
string
|
Descripción de la tabla. | |
schema
|
string
|
El esquema (conjunto de datos de BigQuery) en el que se encuentra la tabla de origen. |
IDependenciesConfig
Define las dependencias de una acción de flujo de trabajo.
dependencies
|
Resolvable| Resolvable[]
|
Una o varias dependencias explícitas de esta acción. Las acciones de dependencia
se ejecutarán antes que las acciones dependientes.
Normalmente, este valor no se define, ya que la mayoría de las dependencias se declaran como un subproducto 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 explícitamente. Si esta acción depende de datos de una fuente que no se ha declarado como dependencia, |
IDocumentableConfig
Define las descripciones de un conjunto de datos y sus columnas.
columns
|
IColumnsDescriptor
|
Una descripción de las columnas del conjunto de datos. |
|
description
|
string
|
Descripción del conjunto de datos. |
INamedConfig
Define el tipo y el nombre de una acción de flujo de trabajo.
type
|
string
|
Tipo de acción. |
|
name
|
string
|
El nombre de la acción. |
IOperationConfig
Opciones de configuración de los tipos de acciones operations
.
columns
|
IColumnsDescriptor
|
Una descripción de las columnas de la tabla. | |
database
|
string
|
La base de datos (Google Cloud ID de proyecto) en la que se creará el resultado de esta acción. | |
description
|
string
|
Descripción de la tabla. | |
disabled
|
boolean
|
Si se le asigna el valor true , esta acción no se ejecuta.
La acción aún se puede usar como dependencia.
Ú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 mediante la función ref .
Si se define 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 explícitamente.
Si esta acción depende de datos de una fuente que no se ha declarado como dependencia, asigna el valor |
|
schema
|
string
|
El esquema (conjunto de datos de BigQuery) en el que se creará el resultado de esta acción. | |
tags
|
string[]
|
Lista de etiquetas definidas por el usuario aplicadas a esta acción. |
IProjectConfig
Contiene los ajustes de compilación de un repositorio de Dataform.
defaultDatabase
|
string
|
Obligatorio. La base de datos predeterminada (Google Cloud ID de proyecto). | |
defaultSchema
|
string
|
Obligatorio. El esquema predeterminado (ID del conjunto de datos de BigQuery). | |
defaultLocation
|
string
|
Opcional. Ubicación predeterminada de BigQuery en la que Dataform crea tablas. | |
assertionSchema
|
string
|
Obligatorio. Esquema predeterminado (ID del conjunto de datos de BigQuery) de las aserciones. | |
vars
|
map (key: string, value: string)
|
Opcional. 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. El sufijo que se debe añadir a todos los nombres de bases de datos (Google Cloud ID de proyecto). | |
schemaSuffix
|
string
|
Opcional. El sufijo que se debe añadir a todos los nombres de schema (ID del conjunto de datos de BigQuery). | |
tablePrefix
|
string
|
Opcional. El prefijo que se debe añadir a todos los nombres de tabla. | |
warehouse
|
string
|
Obligatorio. Debe tener el valor bigquery .
|
Puedes definir propiedades de IProjectConfig
en la configuración del flujo de trabajo
a nivel de repositorio.
Puedes anular las propiedades defaultSchema
y defaultDatabase
de tablas concretas.
Puedes acceder a todas las propiedades de IProjectConfig
en una instrucción SELECT
de SQL en un archivo SQLX o JavaScript.
En el siguiente ejemplo de código se muestra la myVariableName
variable de compilación personalizada
definida en los ajustes del flujo de trabajo
con la propiedad projectConfig.vars
, a la que se accede en una instrucción SELECT
de 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 de un proyecto para obtener resultados de compilación concretos, consulta el recurso REST projects.locations.repositories.compilationResults#CodeCompilationConfig
en la API Dataform.
IRecordDescriptor
Describe una estructura, un objeto o un registro de una tabla que tiene columnas anidadas.
bigqueryPolicyTags
|
string | string[]
|
Identificadores completos de las etiquetas de política de BigQuery aplicadas 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
|
Descripción de las columnas de la estructura, el objeto o el registro. | |
description
|
string
|
Descripción de la estructura, el objeto o el registro. |
ITableAssertions
Opciones para crear aserciones como parte de una definición de tabla.
nonNull
|
string | string[]
|
Columnas que nunca pueden ser NULL .
Si se define, la aserción correspondiente falla si alguna fila contiene valores |
|
rowConditions
|
string[]
|
Condiciones generales que deben cumplirse en todas las filas de la tabla.
Si se define, la aserción correspondiente falla si alguna fila infringe alguna de estas condiciones. |
|
uniqueKey
|
string | string[]
|
Columnas que constituyen el índice de clave única de la tabla.
Si se define, la aserción resultante falla si hay más de una fila en la tabla con los mismos valores en todas estas columnas. |
|
uniqueKeys
|
[]
|
Combinaciones de columnas, cada una de las cuales constituye un índice de clave único de la tabla.
Si se define, la aserción resultante falla si hay más de una fila en la tabla con los mismos valores en todas las columnas de las claves únicas. |
ITableConfig
Opciones de configuración de las acciones de table
, incluidos los tipos de tabla table
, view
y incremental
.
Extiende IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig y ITargetableConfig.
assertions
|
ITableAssertions
|
Aserciones que se van a ejecutar en la tabla.
Si se configura, se crearán automáticamente las aserciones pertinentes y se ejecutarán como una dependencia de esta tabla. |
|
bigquery
|
IBigQueryOptions
|
Opciones de almacén específicas de BigQuery. | |
columns
|
IColumnsDescriptor
|
Una descripción de las columnas de la tabla. | |
database
|
string
|
La base de datos (Google Cloud ID de proyecto) en la que se creará el resultado de esta acción. | |
description
|
string
|
Descripción de la tabla. | |
disabled
|
boolean
|
Si se le asigna el valor true , esta acción no se ejecuta.
La acción aún se puede usar como dependencia.
Ú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 explícitamente.
Si esta acción depende de datos de una fuente que no se ha declarado como dependencia, asigna el valor |
|
materialized
|
boolean
|
Solo es válido cuando el tipo de tabla es view .
Si se le asigna el valor true, se creará una vista materializada. |
|
onSchemaChange
|
onSchemaChange
|
Solo es válido cuando el tipo de tabla es incremental .
La acción que se realiza después de que Dataform compruebe la Esta función está en versión preliminar. |
|
protected
|
boolean
|
Solo se permite en el tipo de tabla incremental .
Si se le asigna el valor true, al ejecutar esta acción se ignora la opción |
|
schema
|
string
|
El esquema (conjunto de datos de BigQuery) en el que se creará el resultado de esta acción. | |
tags
|
string[]
|
Lista de etiquetas definidas por el usuario aplicadas a esta acción. | |
type
|
TableType
|
El tipo de tabla. | |
uniqueKey
|
string[]
|
Claves únicas de los criterios de combinación de tablas incrementales.
Si se configura, los registros con las claves únicas coincidentes se actualizan en lugar de insertar filas nuevas. |
ITableContext
Los métodos de contexto están disponibles al evaluar código SQL contextual, como en archivos SQLX, o al usar un argumento Contextable
con Dataform Core.
incremental
|
() => boolean
|
Devuelve true cuando el contexto actual indica que la tabla se creará de forma incremental. | |
name
|
() => string
|
Devuelve el nombre completo de esta tabla. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Hace referencia a otra acción y la añade como dependencia de esta acción.
Devuelve SQL válido para usarlo 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 usando argumentos individuales para los valores de
Si solo se proporcionan dos valores, se usa la base de datos predeterminada y los valores se interpretan como Si 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 añadir una dependencia, resuelve la referencia proporcionada para que se pueda usar en SQL, por ejemplo, en una expresión `from`.
|
|
self
|
() => string
|
Equivalente a resolve(name()) .
Devuelve una cadena SQL válida que se puede usar para hacer referencia a la tabla producida por esta acción. |
|
when
|
(cond: boolean, trueCase: string, falseCase: string) => string
|
Abreviatura de una condición de if .
Equivalente a cond ? trueCase : falseCase .
|
ITarget
Referencia a una tabla 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
|
La base de datos en la que se debe crear el resultado de esta acción. Debe ser BigQuery. |
|
schema
|
string
|
El esquema en el que se debe crear la salida de esta acción. |
onSchemaChange
Después de definir la propiedad onSchemaChange
, Dataform comprueba la consulta SELECT
para determinar si se han añadido o eliminado columnas.
A continuación, Dataform realiza la acción especificada por el valor de la propiedad onSchemaChange
. Puedes definir la acción como una de las siguientes:
IGNORE
(predeterminado): ignora las columnas añadidas y muestra un error si faltan columnas. Si no se defineonSchemaChange
, este es el comportamiento predeterminado cuando cambia el esquema.FAIL
: detiene la acción si Dataform detecta algún cambio en el esquema, lo que ayuda a mantener la coherencia del esquema.EXTEND
: añade nuevas columnas de la consulta a la tabla incremental y añade valores deNULL
a los registros anteriores. Muestra un error si se elimina una columna o falta en el esquema original de la consulta. Puedes usar este ajuste para añadir nuevas columnas a tus tablas incrementales durante el tiempo de ejecución.SYNCHRONIZE
: añade nuevas columnas de la consulta a la tabla incremental y añade valoresNULL
a los registros anteriores. Elimina las columnas que estaban en el esquema original, pero que ahora faltan en la consulta actual.
operate()
operate
|
(name: string, queries?: Contextable
|
Define una operación de SQL. Solo 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 una vista. Solo 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 que se puede resolver puede ser el nombre de una tabla como string
o el objeto que describe la ruta completa de la relación.
string | ITarget
TableType
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 el artículo sobre cómo configurar una tabla incremental.