Descripción general de Dataform

En este documento, se presentan los conceptos y procesos de Dataform.

Dataform es un servicio para que los analistas de datos desarrollen, prueben, controlen versiones y programen flujos de trabajo de SQL complejos para transformar datos en BigQuery.

Dataform te permite administrar la transformación de datos en la extracción, Proceso de carga y transformación (ELT) para la integración de datos. Después de los datos sin procesar se extraen de los sistemas de origen y se cargan en BigQuery, Dataform te ayuda a transformarlo en un entorno y documentado de tablas de datos.

Dataform te permite realizar las siguientes acciones de transformación de datos:

  • Desarrollar y ejecutar flujos de trabajo de SQL para la transformación de datos
  • Colabora con los miembros del equipo en el desarrollo del flujo de trabajo de SQL a través de Git.
  • Administrar una gran cantidad de tablas y sus dependencias
  • Declara los datos de origen y administra las dependencias de las tablas.
  • Visualiza una visualización del árbol de dependencias de tu flujo de trabajo de SQL.
  • Administrar datos con código SQL en un repositorio central
  • Volver a usar código con JavaScript
  • Prueba la precisión de los datos con pruebas de calidad en las tablas fuente y de salida.
  • Código SQL de control de versión.
  • Documenta las tablas de datos dentro del código SQL.

Procesos de transformación de datos en Dataform

El flujo de trabajo de transformación de datos de Dataform es el siguiente:

  1. Dataform te permite crear repositorios para administrar tu código.
  2. Dataform te permite crear espacios de trabajo para el desarrollo.
  3. Dataform te permite desarrollar flujos de trabajo de SQL en un espacio de trabajo de desarrollo.
  4. Dataform compila un núcleo de Dataform en SQL.
  5. Dataform ejecuta el árbol de dependencias.

Dataform te permite crear repositorios para administrar tu código.

En un repositorio de Dataform, usas Dataform Core, una extensión de SQL, para escribir archivos SQLX en los que defines tu flujo de trabajo. Dataform los repositorios admiten el control de versiones. Puedes vincular un repositorio de Dataform a un proveedor de Git externo.

Dataform te permite crear lugares de trabajo para el desarrollo

Puedes crear lugares de trabajo de desarrollo un repositorio de Dataform para el desarrollo principal de Dataform. En una de desarrollo de aplicaciones, puedes hacer cambios en el repositorio, compilar, probar, al repositorio principal con Git.

Dataform te permite desarrollar el núcleo de Dataform en un lugar de trabajo de desarrollo

En un lugar de trabajo de desarrollo, puedes definir y documentar tablas, sus dependencias y la lógica de transformación para compilar tu flujo de trabajo de SQL. También puedes configurar acciones en JavaScript.

Dataform compila el núcleo de Dataform.

Durante la compilación, Dataform realiza las siguientes tareas:

  • Compila el núcleo de Dataform en un flujo de trabajo de SQL estándar.
  • Agrega instrucciones de SQL estándar, como CREATE TABLE o INSERT, al código intercalado con tu configuración de consulta.
  • Transpila (compila de fuente a fuente) JavaScript en SQL.
  • Resuelve las dependencias y verifica si hay errores, incluidas las dependencias circulares o faltantes.
  • Compila el árbol de dependencias de todas las acciones que se ejecutarán en BigQuery.

La compilación de Dataform es hermética para garantizar la coherencia de la compilación, lo que significa que el mismo código se compila en el mismo resultado de compilación de SQL cada vez. Dataform compila tu código en un entorno de zona de pruebas sin acceso a Internet. No se requieren acciones adicionales, como llamar o APIs externas, están disponibles durante la compilación.

Para depurar en tiempo real, puedes inspeccionar el flujo de trabajo de SQL compilado de tu proyecto en un gráfico interactivo en tu lugar de trabajo de desarrollo.

Dataform ejecuta el árbol de dependencias

En BigQuery, Dataform realiza las siguientes tareas:

  • Ejecuta los comandos de SQL, siguiendo el orden del árbol de dependencias.
  • Ejecuta consultas de aserción en tus tablas y vistas para verificar la exactitud de los datos.
  • Ejecuta otras operaciones SQL que definiste.

Después de la ejecución, puedes usar las tablas y vistas para todos tus fines de análisis.

Puedes ver los registros para ver qué tablas se crearon, si las aserciones se aprobaron o no, cuánto tiempo tardó en completarse cada acción y otra información. También puedes ver el código SQL exacto que se ejecutó en BigQuery.

Framework de modelado de Dataform

Dataform proporciona un framework de modelado de datos de código abierto, que consta de Dataform core y Dataform CLI, que puedes usar fuera de Google Cloud.

Limitaciones

Dataform tiene las siguientes limitaciones conocidas:

  • Dataform en Google Cloud se ejecuta en un entorno de ejecución V8 simple y no es compatible con las funciones y los módulos adicionales que proporciona Node.js. Si el la base de código existente requiere los módulos de Node.js, debes quitar esas dependencias.

    Los proyectos sin un campo de nombre en package.json generan diferencias en package-lock.json cada vez que se instalan paquetes. Para evitar este resultado, Debes agregar una propiedad name en package.json.

  • git+https:// URLs de dependencias en package.json no son no es compatible.

    Convierte esas URLs en URLs de archivo https:// sin formato. Por ejemplo, convierte git+https://github.com/dataform-co/dataform-segment.git#1.5. a https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz.

  • No está disponible la ejecución manual de pruebas de unidades.

  • La búsqueda de contenido de archivos en espacios de trabajo de desarrollo no está disponible.

  • A partir de Dataform core 3.0.0., Dataform no distribuye una imagen de Docker. Puedes compilar tu propia imagen de Docker de Dataform, que puedes usar para ejecutar el equivalente de los comandos de la CLI de Dataform. Para compilar tu propia imagen de Docker, consulta Crea contenedores para una aplicación en la documentación de Docker.

¿Qué sigue?