Présentation de JavaScript dans Dataform

Ce document vous aide à comprendre comment utiliser JavaScript. pour développer des workflows SQL dans Dataform.

Dataform Core vous permet de créer des objets de workflow SQL avec SQLX et JavaScript. Bien que cette étape soit facultative, l'utilisation de JavaScript avec SQLX pour créer des éléments similaires à plusieurs reprises dans votre flux de travail. Par exemple, avec JavaScript, vous pouvez créer un de chaque table de votre workflow, à l'exception de certains ID utilisateur. Vous pouvez également développer des objets de workflow SQL exclusivement avec JavaScript.

Pour commencer à développer des workflows Dataform SQL à l'aide de JavaScript, vous devez connaître Syntaxe JavaScript et les concepts JavaScript suivants:

  • Variables
  • Tableaux
  • Instructions conditionnelles
  • Boucles For
  • Maps
  • Fonctions
  • Objets
  • Exporter et importer des modules

Ajouter du code JavaScript à un fichier SQLX

Vous pouvez ajouter du code JavaScript à un fichier SQLX de deux manières: intégrée ou à l'intérieur d'un bloc JavaScript.

Vous pouvez utiliser un bloc JavaScript pour définir des fonctions ou des constantes dans un fichier SQLX. Vous pouvez utiliser du code JavaScript intégré pour modifier dynamiquement une requête SQLX ou SQL.

L'exemple de code suivant montre le noyau Dataform intégré self Fonction JavaScript ajoutée au bloc post_operations dans un fichier SQLX:

config {type: "table"}

SELECT * FROM ...

post_operations {
  GRANT `roles/bigquery.dataViewer`
  ON
  TABLE ${self()}
  TO "group:allusers@example.com", "user:otheruser@example.com"
}

L'exemple de code suivant montre une constante définie dans un bloc JavaScript et utilisé de manière intégrée dans une requête dans un fichier SQLX:

js {
  const columnName = "foo";
}

SELECT 1 AS ${columnName} FROM "..."

Réutiliser du code avec JavaScript

Vous pouvez réutiliser le code JavaScript pour simplifier le développement dans Dataform. Pour réutiliser des constantes et des fonctions JavaScript dans un seul fichier SQLX, vous pouvez les encapsuler dans un bloc JavaScript. Pour réutiliser le code JavaScript dans un dépôt Dataform unique, vous pouvez créer des inclusions. Pour réutiliser le code JavaScript dans plusieurs dépôts Dataform, vous pouvez créer ou importer un package.

Réutiliser du code dans un seul fichier SQLX avec encapsulation JavaScript

Pour créer des parties répétitives du code SQL que vous pouvez réutiliser dans dans un seul fichier SQLX, vous pouvez encapsuler des fonctions et des constantes un bloc JavaScript. Vous ne pouvez réutiliser le code défini dans un bloc JavaScript que dans le fichier SQLX où le bloc est défini. Pour plus d'informations, consultez la page Présentation de Dataform Core.

L'exemple de code suivant montre une constante et une fonction définies dans une et utilisé de manière intégrée dans une requête dans un fichier SQLX:

js {
 const foo = 1;
 function bar(number){
     return number+1;
 }
}

select
 ${foo} as one,
 ${bar(foo)} as two

Réutiliser du code dans un seul dépôt avec des inclusions

Les inclusions sont des constantes ou des fonctions JavaScript globales pour votre dépôt. Vous définissez des inclusions dans les includes. de votre dépôt. Vous pouvez ensuite les réutiliser dans votre dépôt dans les fichiers JavaScript et SQLX.

L'exemple de code suivant montre la définition de la constante launch_date dans le fichier includes/constants.js:

// filename is includes/constants.js
const launch_date = "11.11.2011";
module.exports = { launch_date };

L'exemple de code suivant montre la constante launch_date référencée dans une table. de définition dans un fichier SQLX:

config {type: "table"}

SELECT * FROM source_table WHERE date > ${constants.launch_date}

Réutiliser du code dans plusieurs dépôts avec des packages

Les packages sont des collections de code JavaScript que vous pouvez importer et utiliser plusieurs dépôts Dataform pour simplifier le développement de workflows SQL.

Vous pouvez créer votre propre package personnalisé dans Dataform ou l'un des packages Open Source Dataform, disponible sur le Page Dataform Open Source GitHub

Pour obtenir un exemple d'utilisation d'un package Open Source dans Dataform, consultez Utilisez des dimensions à évolution lente dans Dataform.

Pour pouvoir utiliser le contenu d'un package dans Dataform, vous devez : installez le package dans votre dépôt Dataform, puis importez-le le fichier JavaScript ou SQLX individuel dans lequel vous souhaitez utiliser le package. Pour en savoir plus, consultez Installer un package dans Dataform.

Pour pouvoir installer un package NPM privé dans un dépôt Dataform, vous devez authentifier le package.

Créer des workflows SQL en JavaScript

Au lieu de développer des workflows SQL en SQLX ou en associant SQLX à JavaScript, vous pouvez créer des objets de workflow SQL dans des fichiers .js en utilisant uniquement JavaScript. Vous pouvez créer plusieurs objets de workflow SQL au sein d'un même fichier JavaScript. contenant des méthodes globales Dataform et du code JavaScript ES5 arbitraire. telles que des boucles et des constantes. Chaque code JavaScript global Dataform contiennent des propriétés permettant de configurer les objets créés.

Vous pouvez créer les objets de workflow SQL suivants : en utilisant uniquement JavaScript dans Dataform:

  • Déclarations de sources de données
  • Tables
  • Assertions manuelles
  • Opérations SQL personnalisées

Pour en savoir plus sur la création d'objets de workflow SQL en JavaScript uniquement, consultez Créez des workflows Dataform SQL avec JavaScript.

Étape suivante