# Google BigQuery

[BigQuery](https://cloud.google.com/bigquery/docs/introduction?hl=en) est l'entrepôt de données de Google qui permet une analyse évolutive des données. Cette intégration permet d'envoyer vos propriétés d'entrée spécifiques, ou toutes, vers BigQuery.

## Principales fonctionnalités

La destination Google BigQuery offre les fonctionnalités clés suivantes :

* **Structure des events**: notre [Events reference](https://community.commandersact.com/platform-x/developers/tracking/events-reference) alimente BigQuery, ce qui signifie que vos données sont correctement mappées aux champs attendus de manière optimisée.
* **Prise en charge de schémas multiples**: stocker les données d'événement en suivant votre schéma préféré/existant ou nous pouvons vous aider à en créer un [universel](#universal-schema).
* **Contrôle des données**: sélectionnez vos propriétés ou cochez simplement une case pour les envoyer toutes à BigQuery.

## Configuration de la destination

{% hint style="info" %}
Assurez-vous [BigQuery API](https://console.cloud.google.com/apis/library/bigquery.googleapis.com?project=gtm-mw9cdnc-ntexy) est activée. Plus de détails sont disponibles en suivant ce [LINK](https://cloud.google.com/bigquery/docs/enable-transfer-service?hl=en#enable-api).\
Utilisez [**Filtres de destination**](https://doc.commandersact.com/features/destinations/destination-filters) pour affiner les événements et/ou autres propriétés en fonction de vos besoins spécifiques.
{% endhint %}

Cette destination accepte tous les schémas, plus précisément :

1. votre schéma de table existant ou,
2. un schéma universel.

La première option est utile pour ceux qui souhaitent utiliser une table existante avec ses colonnes prédéfinies : c'est un scénario courant lorsque vous avez déjà des données stockées et c'est l'option recommandée car elle est rapide à configurer et les données peuvent être consultées directement depuis la colonne spécifique. Pour activer ce mode, dans le [Configuration](#configuration), vous devez simplement activer la `Détection automatique de la structure de la table (recommandé)` puis procéder à la section `Event Property Mapping` pour sélectionner les colonnes dans `Colonne BigQuery` et leurs valeurs dans `Your value` .\
La deuxième méthode repose sur un [Schéma universel](#universal-schema), où toutes vos données (ou propriétés sélectionnées) sont stockées dans une seule **colonne** sous forme de chaîne JSON et en utilisant la fonction BigQuery [PARSE\_JSON](https://cloud.google.com/bigquery/docs/reference/standard-sql/json_functions#parse_json) vous pouvez récupérer des valeurs spécifiques à l'intérieur. Nous vous suggérons de consulter la section [Schéma universel](#universal-schema) avec un guide détaillé sur la façon dont vous pouvez créer le schéma universel et comprendre si c'est la structure de table appropriée pour vous.\
Pour activer ce mode, dans le [Configuration](#configuration), vous pouvez soit cocher `Send all properties to BigQuery with universal schema` afin que toutes les propriétés soient incluses ou vous pouvez saisir les propriétés que vous souhaitez envoyer en utilisant la `Nom de la propriété` table dans la section `Properties to include with universal schema` .

### Configuration

| Settings                                                                                              | Description                                                                                                                                                                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Authentification`                                                                                    | <p><em><strong><code>Requis</code></strong></em><br>Vos identifiants Google tels que définis dans l'interface Commanders Act en suivant : <code>Administration</code> ➜ <code>Connector Credentials</code> ➜ <code>Ajouter des connector credentials</code> ➜ <code>BigQuery</code></p>         |
| `Project Id`                                                                                          | <p><em><strong><code>Requis</code></strong></em><br>Sélectionnez l'identifiant de votre projet dans le menu déroulant tel qu'indiqué dans la console BigQuery. Plus de détails sont disponibles en suivant ce <a href="https://support.google.com/googleapi/answer/7014113?hl=en">LINK</a>.</p> |
| `Dataset Id`                                                                                          | <p><em><strong><code>Requis</code></strong></em><br>Sélectionnez l'identifiant de votre dataset tel qu'indiqué dans la console BigQuery. Plus de détails sont disponibles en suivant ce <a href="https://cloud.google.com/bigquery/docs/datasets-intro?hl=en">LINK</a>.</p>                     |
| `Table Id`                                                                                            | <p><em><strong><code>Requis</code></strong></em><br>Sélectionnez l'identifiant de la table tel qu'indiqué dans la console BigQuery. Plus de détails sont disponibles en suivant ce <a href="https://cloud.google.com/bigquery/docs/tables-intro?hl=en">LINK</a>.</p>                            |
| `Détection automatique de la structure de la table (recommandé)`                                      | Cochez cette option pour activer la fonctionnalité de détection automatique de la structure de la table.                                                                                                                                                                                        |
| <p><code>Envoyer toutes les propriétés à BigQuery avec</code></p><p><code>schéma universel</code></p> | Cochez cette option pour envoyer toutes les propriétés à BigQuery suivant un schéma spécifique : voir la section [Schéma universel](#universal-schema) pour plus de détails.                                                                                                                    |
| `Event property Mapping`                                                                              | Lorsque `Détection automatique de la structure de la table (recommandé)` est cochée, vous devez mapper vos champs BigQuery en les sélectionnant dans le `Colonne BigQuery` et définir leurs valeurs dans `Your value` .                                                                         |
| `Nom de la propriété` **\[1]**                                                                        | Lorsque les deux `Détection automatique de la structure de la table (recommandé)` et `Send all properties to BigQuery with universal schema` ne sont pas cochées, vous pouvez saisir les propriétés que vous souhaitez inclure dans votre table avec schéma universel, une par ligne.           |

{% hint style="info" %}
**\[1]** dans la section `Properties to include with universal schema` .
{% endhint %}

## Schéma universel

{% hint style="info" %}
Les étapes suivantes ne sont pas requises si vous cochez `Détection automatique de la structure de la table (recommandé)` .
{% endhint %}

Lors de la sélection de `Send all properties to BigQuery` un schéma spécifique est requis. Voir les sous-sections suivantes pour apprendre comment créer un schéma universel. Ceci n'est pas

### Dataset

Accès [console BigQuery](https://console.cloud.google.com/) pour localiser votre `(1)` identifiant de projet et cliquez `(2)` le `trois points` à droite. Sélectionnez `(3)` `Créer un dataset` dans le menu ou, alternativement, vous pouvez utiliser un dataset existant et passer à la [sous-section suivante](#table).

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-9f5a7cad2eb5c7f170bf408538230e06083aad05%2Fbigquery_1.png?alt=media" alt=""><figcaption><p>Création de dataset #1.</p></figcaption></figure>

Saisissez un `(4)` identifiant de dataset (par ex. "myDatasetId"), sélectionnez un `(5)` type d'emplacement et cliquez `(6)` `CREATE DATASET`.

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-9cbbc0d71538b044dfcdeb64aca08a03a7236ed0%2Fbigquery_2.png?alt=media" alt=""><figcaption><p>Création de dataset #2.</p></figcaption></figure>

### Table

Créez une table avec la structure suivante :

| Nom du champ | Type      | Mode   |
| ------------ | --------- | ------ |
| rawDataCa    | String    | Requis |
| createdAt    | Timestamp | Requis |

La façon la plus simple de la créer est de cliquer `(7)` le `plus` bouton :

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-ad0864eec4dac5df1d24f263a8ad2fa114970988%2Fbigquery_3.png?alt=media" alt=""><figcaption><p>Composer une nouvelle requête.</p></figcaption></figure>

copiez et collez la requête suivante dans `(8)` la zone de saisie :

```powerquery
CREATE TABLE IF NOT EXISTS [PROJECT_ID].[DATASET_ID].[TABLE_ID] (rawDataCa STRING NOT NULL, createdAt TIMESTAMP NOT NULL) OPTIONS(description="CA raw event data stored in Google BigQuery")
```

{% hint style="info" %}
Remplacez `[PROJECT_ID]` , `[DATASET_ID]` et `[TABLE_ID]` par votre projet, dataset et identifiant de table respectivement. Vous définissez votre identifiant de table à cette étape.
{% endhint %}

puis cliquez sur le `(9)` `RUN` bouton.

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-e7aaa476a4dbea3efe1c022045fa41fadf878af5%2Fbigquery_4.png?alt=media" alt=""><figcaption><p>Exécuter la requête de création de table.</p></figcaption></figure>

### Référence rapide

| Commanders Act Events   | Colonnes de la table BigQuery     |
| ----------------------- | --------------------------------- |
| `[Any events]` **\[1]** | `rawDataCa`, `createdAt` **\[2]** |

{% hint style="info" %}

> **\[1]** Use [**Filtres de destination**](https://doc.commandersact.com/features/destinations/destination-filters) pour spécifier vos événements de correspondance.  \
> \&#xNAN;**\[2]** Deux colonnes : <mark style="color:blue;">`rawDataCa`</mark> contient vos propriétés d'événement, tandis que <mark style="color:blue;">`createdAt`</mark> est l'horodatage de création.
> {% endhint %}
