BigQuery
Utilisez le connecteur BigQuery pour effectuer des opérations d'insertion, de suppression, de mise à jour et de lecture sur les données Google BigQuery. Vous pouvez également exécuter des requêtes SQL personnalisées sur des données BigQuery. Vous pouvez utiliser le connecteur BigQuery pour intégrer les données de plusieurs services Google Cloud ou d'autres services tiers, tels que Cloud Storage ou Amazon S3.
Avant de commencer
Dans votre projet Google Cloud, effectuez les tâches suivantes:
- Vérifiez que la connectivité réseau est configurée. Pour en savoir plus sur les modèles réseau, consultez la section Connectivité réseau.
- Attribuez le rôle IAM roles/connectors.admin à l'utilisateur qui configure le connecteur.
- Attribuez le rôle IAM
roles/bigquery.dataEditor
au compte de service que vous souhaitez utiliser pour le connecteur. - Activez les services suivants :
secretmanager.googleapis.com
(API Secret Manager)connectors.googleapis.com
(API Connectors)
Pour savoir comment activer des services, consultez la page Activer des services. Si ces services ou autorisations n'ont pas encore été activés pour votre projet, vous êtes invité à les activer lorsque vous configurez le connecteur.
Créer une connexion BigQuery
Une connexion est spécifique à une source de données. Cela signifie que si vous disposez de nombreuses sources de données, vous devez créer une connexion distincte pour chacune d'elles. Pour créer une connexion, procédez comme suit:
- Dans la console Cloud, accédez à la page Integration Connectors > Connections (Connecteurs d'intégration > Connexions), puis sélectionnez ou créez un projet Google Cloud.
- Cliquez sur + CRÉER pour ouvrir la page Créer une connexion.
- Dans la section Emplacement, sélectionnez un emplacement dans la liste Région, puis cliquez sur SUIVANT.
Pour obtenir la liste de toutes les régions disponibles, consultez la page Emplacements.
- Dans la section Détails de connexion, procédez comme suit :
- Sélectionnez BigQuery dans la liste Connecteur.
- Sélectionnez une version de connecteur dans la liste Version du connecteur.
- Dans le champ Nom de connexion, saisissez un nom pour l'instance de connexion. Le nom de la connexion peut contenir des lettres minuscules, des chiffres et des traits d'union. Le nom doit commencer par une lettre et se terminer par une lettre ou un chiffre. Il ne doit pas comporter plus de 49 caractères.
- Vous pouvez également activer Cloud Logging, puis sélectionner un niveau de journalisation. Par défaut, le niveau de journalisation est défini sur
Error
. - Compte de service : sélectionnez un compte de service disposant des rôles requis.
- (Facultatif) Configurez les paramètres du nœud de connexion.
- Nombre minimal de nœuds : saisissez le nombre minimal de nœuds de connexion.
- Nombre maximal de nœuds : saisissez le nombre maximal de nœuds de connexion.
- ID du projet : saisissez l'ID du projet Google Cloud dans lequel se trouvent les données.
- ID de l'ensemble de données : l'ID de l'ensemble de données BigQuery.
- Pour prendre en charge le type de données BigQuery Array, sélectionnez Accepter les types de données natifs. Les types de tableaux suivants sont acceptés: Varchar, Int64, Float64, Long, Double, Bool et Timestamp. Les tableaux imbriqués ne sont pas acceptés.
- (Facultatif) Pour configurer un serveur proxy pour la connexion, sélectionnez Utiliser un proxy, puis saisissez les informations du proxy.
-
Schéma d'authentification du proxy : sélectionnez le type d'authentification pour l'authentification auprès du serveur proxy. Les types d'authentification suivants sont compatibles :
- Basique : authentification HTTP de base.
- Condensé : authentification HTTP par condensé.
- Utilisateur du proxy : nom d'utilisateur à utiliser pour l'authentification auprès du serveur proxy.
- Mot de passe du proxy : secret Secret Manager du mot de passe de l'utilisateur.
-
Type SSL du proxy : type SSL à utiliser lors de la connexion au serveur proxy. Les types d'authentification suivants sont compatibles :
- Auto : paramètre par défaut. Dans le cas d'une URL HTTPS, l'option "Tunnel" est utilisée. Dans le cas d'une URL HTTP, l'option "JAMAIS" est utilisée.
- Toujours : la connexion SSL est toujours activée.
- Jamais : la connexion n'est pas activée pour SSL.
- Tunnel : la connexion s'effectue via un proxy de tunnelisation. Le serveur proxy ouvre une connexion à l'hôte distant et le trafic transite par le proxy.
- Dans la section Serveur proxy, saisissez les détails du serveur proxy.
- Cliquez sur + Ajouter une destination.
- Sélectionnez un type de destination.
- Adresse de l'hôte : spécifiez le nom d'hôte ou l'adresse IP de la destination.
Si vous souhaitez établir une connexion privée à votre système backend, procédez comme suit :
- Créez un rattachement de service PSC.
- Créez un rattachement de point de terminaison, puis saisissez les détails du rattachement de point de terminaison dans le champ Adresse de l'hôte.
- Adresse de l'hôte : spécifiez le nom d'hôte ou l'adresse IP de la destination.
- Cliquez sur SUIVANT.
Un nœud est une unité (ou instance répliquée) de connexion qui traite des transactions. Pour traiter plus de transactions pour une connexion, plus de nœuds sont nécessaires. À l'inverse, moins de nœuds sont nécessaires pour traiter moins de transactions. Pour comprendre comment les nœuds affectent la tarification de votre connecteur, consultez la section Tarifs des nœuds de connexion. Si vous ne saisissez aucune valeur, le nombre minimal de nœuds est défini par défaut sur 2 (pour une meilleure disponibilité) et le nombre maximal sur 50.
-
Dans la section Authentification, saisissez les informations d'authentification.
- Indiquez si vous souhaitez vous authentifier avec OAuth 2.0 (code d'autorisation) ou si vous souhaitez continuer sans authentification.
Pour comprendre comment configurer l'authentification, consultez la section Configurer l'authentification.
- Cliquez sur SUIVANT.
- Indiquez si vous souhaitez vous authentifier avec OAuth 2.0 (code d'autorisation) ou si vous souhaitez continuer sans authentification.
- Vérifiez vos informations de connexion et d'authentification, puis cliquez sur Créer.
Configurer l'authentification
Saisissez les détails en fonction de l'authentification que vous souhaitez utiliser.
- Aucune authentification: sélectionnez cette option si vous ne nécessitez pas d'authentification.
- OAuth 2.0 – Code d'autorisation: sélectionnez cette option pour vous authentifier à l'aide d'un flux de connexion utilisateur sur le Web. Spécifiez les informations suivantes :
- ID client : ID client requis pour vous connecter à votre service Google backend.
- Champs d'application : liste des champs d'application souhaités, séparés par une virgule. Pour afficher tous les champs d'application OAuth 2.0 compatibles avec votre service Google requis, consultez la section correspondante de la page Champs d'application OAuth 2.0 pour les API Google.
- Secret du client : sélectionnez le secret Secret Manager. Vous devez avoir créé le secret Secret Manager avant de configurer cette autorisation.
- Version du secret : version du secret Secret Manager pour le code secret du client.
Pour le type d'authentification Authorization code
, après avoir créé la connexion, vous devez l'autoriser.
Autoriser la connexion
Si vous utilisez le code d'autorisation OAuth 2.0 pour authentifier la connexion, effectuez les tâches suivantes après avoir créé la connexion.
- Sur la page Connexions, recherchez la connexion que vous venez de créer.
Notez que l'état du nouveau connecteur est Autorisation requise.
- Cliquez sur Autorisation requise.
Le volet Modifier l'autorisation s'affiche.
- Copiez la valeur de l'URI de redirection dans votre application externe.
- Vérifiez les informations d'autorisation.
- Cliquez sur Autoriser.
Si l'autorisation aboutit, l'état de la connexion est défini sur Active sur la page Connexions.
Effectuer une nouvelle autorisation au code d'autorisation
Si vous utilisez le type d'authentification Authorization code
et que vous avez modifié la configuration de BigQuery, vous devez autoriser à nouveau votre connexion BigQuery. Pour réautoriser une connexion, procédez comme suit:
- Cliquez sur la connexion requise sur la page Connexions.
La page des détails de la connexion s'ouvre.
- Cliquez sur Modifier pour modifier les détails de la connexion.
- Vérifiez les informations OAuth 2.0 – Code d'autorisation dans la section Authentification.
Si nécessaire, apportez les modifications nécessaires.
- Cliquez sur Enregistrer. Vous êtes redirigé vers la page d'informations sur la connexion.
- Cliquez sur Modifier l'autorisation dans la section Authentification. Le volet Authorize (Autoriser) s'affiche.
- Cliquez sur Autoriser.
Si l'autorisation aboutit, l'état de la connexion est défini sur Active sur la page Connexions.
Utiliser la connexion BigQuery dans une intégration
Une fois la connexion créée, elle devient disponible à la fois dans Apigee Integration et Application Integration. Vous pouvez utiliser la connexion dans une intégration via la tâche "Connecteurs".
- Pour découvrir comment créer et utiliser la tâche Connecteurs dans Apigee Integration, consultez la section Tâche Connecteurs.
- Pour savoir comment créer et utiliser la tâche Connecteurs dans Application Integration, consultez la section Tâche Connecteurs.
Actions
Cette section décrit les actions disponibles dans le connecteur BigQuery.
Action CancelJob
Cette action vous permet d'annuler une tâche BigQuery en cours d'exécution.
Le tableau suivant décrit les paramètres d'entrée de l'action CancelJob
.
Nom du paramètre | Type de données | Description |
---|---|---|
JobId | Chaîne | ID de la tâche que vous souhaitez annuler. Ce champ est obligatoire. |
Région | Chaîne | Région dans laquelle la tâche est actuellement exécutée. Cette étape n'est pas obligatoire si l'offre d'emploi se trouve dans une région des États-Unis ou de l'UE. |
Action GetJob
Cette action vous permet de récupérer les informations de configuration et l'état d'exécution d'une tâche existante.
Le tableau suivant décrit les paramètres d'entrée de l'action GetJob
.
Nom du paramètre | Type de données | Description |
---|---|---|
JobId | Chaîne | ID de la tâche pour laquelle vous souhaitez récupérer la configuration. Ce champ est obligatoire. |
Région | Chaîne | Région dans laquelle la tâche est actuellement exécutée. Cette étape n'est pas obligatoire si l'offre d'emploi se trouve dans une région des États-Unis ou de l'UE. |
Action InsertJob
Cette action vous permet d'insérer une tâche BigQuery, que vous pourrez sélectionner ultérieurement pour récupérer les résultats de la requête.
Le tableau suivant décrit les paramètres d'entrée de l'action InsertJob
.
Nom du paramètre | Type de données | Description |
---|---|---|
Requête | Chaîne | Requête à envoyer à BigQuery. Ce champ est obligatoire. |
IsDML | Chaîne | Doit être défini sur true si la requête est une instruction DML ou sur false dans le cas contraire. La valeur par défaut est false . |
DestinationTable | Chaîne | Table de destination de la requête, au format DestProjectId:DestDatasetId.DestTable . |
WriteDisposition | Chaîne | Spécifie comment écrire des données dans la table de destination, par exemple en tronquant les résultats existants, en ajoutant des résultats existants ou en n'écrivant que lorsque la table est vide. Voici les valeurs acceptées :
|
DryRun | Chaîne | Indique si l'exécution de la tâche est une simulation. |
MaximumBytesBilled | Chaîne | Spécifie le nombre maximal d'octets pouvant être traités par la tâche. BigQuery annule la tâche si elle tente de traiter plus d'octets que la valeur spécifiée. |
Région | Chaîne | Spécifie la région dans laquelle la tâche doit s'exécuter. |
Action InsertLoadJob
Cette action vous permet d'insérer une tâche de chargement BigQuery, qui ajoute des données Google Cloud Storage à une table existante.
Le tableau suivant décrit les paramètres d'entrée de l'action InsertLoadJob
.
Nom du paramètre | Type de données | Description |
---|---|---|
SourceURIs | Chaîne | Liste d'URI Google Cloud Storage séparés par un espace. |
SourceFormat | Chaîne | Format source des fichiers. Voici les valeurs acceptées :
|
DestinationTable | Chaîne | Table de destination de la requête, au format DestProjectId.DestDatasetId.DestTable . |
DestinationTableProperties | Chaîne | Objet JSON spécifiant le nom convivial, la description et la liste des libellés de la table. |
DestinationTableSchema | Chaîne | Liste JSON spécifiant les champs utilisés pour créer le tableau. |
DestinationEncryptionConfiguration | Chaîne | Objet JSON spécifiant les paramètres de chiffrement KMS pour la table. |
SchemaUpdateOptions | Chaîne | Liste JSON spécifiant les options à appliquer lors de la mise à jour du schéma de la table de destination. |
TimePartitioning | Chaîne | Objet JSON spécifiant le type et le champ de partitionnement temporel. |
RangePartitioning | Chaîne | Objet JSON spécifiant le champ de partitionnement par plage et les buckets. |
Clustering | Chaîne | Objet JSON spécifiant les champs à utiliser pour le clustering. |
Détection automatique | Chaîne | Indique si les options et le schéma doivent être déterminés automatiquement pour les fichiers JSON et CSV. |
CreateDisposition | Chaîne | Indique si la table de destination doit être créée si elle n'existe pas déjà. Les valeurs acceptées sont les suivantes :
|
WriteDisposition | Chaîne | Spécifie comment écrire des données dans la table de destination, par exemple en tronquant les résultats existants, en les ajoutant ou en n'écrivant que lorsque la table est vide. Voici les valeurs acceptées :
|
Région | Chaîne | Spécifie la région dans laquelle la tâche doit s'exécuter. Les ressources Google Cloud Storage et l'ensemble de données BigQuery doivent se trouver dans la même région. |
DryRun | Chaîne | Indique si l'exécution de la tâche est une simulation. La valeur par défaut est false . |
MaximumBadRecords | Chaîne | Spécifie le nombre d'enregistrements pouvant être non valides avant que la tâche ne soit annulée. Par défaut, tous les enregistrements doivent être valides. La valeur par défaut est 0 . |
IgnoreUnknownValues | Chaîne | Indique si les champs inconnus doivent être ignorés dans le fichier d'entrée ou traités comme des erreurs. Par défaut, elles sont traitées comme des erreurs. La valeur par défaut est false . |
AvroUseLogicalTypes | Chaîne | Indique si les types logiques AVRO doivent être utilisés pour convertir les données AVRO en types BigQuery. La valeur par défaut est true . |
CSVSkipLeadingRows | Chaîne | Spécifie le nombre de lignes à ignorer au début des fichiers CSV. Cette option est généralement utilisée pour ignorer les lignes d'en-tête. |
CSVEncoding | Chaîne | Type d'encodage des fichiers CSV. Voici les valeurs acceptées :
|
CSVNullMarker | Chaîne | Si elle est fournie, cette chaîne est utilisée pour les valeurs NULL dans les fichiers CSV. Par défaut, les fichiers CSV ne peuvent pas utiliser NULL. |
CSVFieldDelimiter | Chaîne | Caractère utilisé pour séparer les colonnes dans les fichiers CSV. La valeur par défaut est une virgule (, ). |
CSVQuote | Chaîne | Caractère utilisé pour les champs cités dans les fichiers CSV. Peut être défini sur une valeur vide pour désactiver les guillemets. La valeur par défaut est les guillemets doubles (" ). |
CSVAllowQuotedNewlines | Chaîne | Indique si les fichiers CSV peuvent contenir des sauts de ligne dans les champs entre guillemets. La valeur par défaut est false . |
CSVAllowJaggedRows | Chaîne | Indique si les fichiers CSV peuvent contenir des champs manquants. La valeur par défaut est false . |
DSBackupProjectionFields | Chaîne | Liste JSON des champs à charger à partir d'une sauvegarde Cloud Datastore. |
ParquetOptions | Chaîne | Objet JSON spécifiant les options d'importation spécifiques à Parquet. |
DecimalTargetTypes | Chaîne | Liste JSON indiquant l'ordre de préférence appliqué aux types numériques. |
HivePartitioningOptions | Chaîne | Objet JSON spécifiant les options de partitionnement côté source. |
Exécuter une requête SQL personnalisée
Pour créer une requête enregistrée, procédez comme suit :
- Suivez les instructions détaillées pour ajouter une tâche de connecteurs.
- Lorsque vous configurez la tâche de connecteur, sélectionnez Actions dans le type d'action à effectuer.
- Dans la liste Action, sélectionnez Exécuter une requête personnalisée, puis cliquez sur OK.
- Développez la section Entrée de la tâche, puis procédez comme suit :
- Dans le champ Délai d'inactivité après, saisissez le nombre de secondes d'attente jusqu'à l'exécution de la requête.
Valeur par défaut :
180
secondes. - Dans le champ Nombre maximal de lignes, saisissez le nombre maximal de lignes à renvoyer à partir de la base de données.
Valeur par défaut :
25
- Pour mettre à jour la requête personnalisée, cliquez sur Modifier le script personnalisé. La boîte de dialogue Éditeur de script s'affiche.
- Dans la boîte de dialogue Éditeur de script, saisissez la requête SQL, puis cliquez sur Enregistrer.
Vous pouvez utiliser un point d'interrogation (?) dans une instruction SQL pour représenter un seul paramètre devant être spécifié dans la liste des paramètres de requête. Par exemple, la requête SQL suivante sélectionne toutes les lignes de la table
Employees
correspondant aux valeurs spécifiées pour la colonneLastName
:SELECT * FROM Employees where LastName=?
- Si vous avez utilisé des points d'interrogation dans votre requête SQL, vous devez ajouter le paramètre en cliquant sur + Ajouter un nom de paramètre pour chaque point d'interrogation. Lors de l'exécution de l'intégration, ces paramètres remplacent les points d'interrogation (?) de la requête SQL de manière séquentielle. Par exemple, si vous avez ajouté trois points d'interrogation (?), vous devez ajouter trois paramètres dans l'ordre.
Pour ajouter des paramètres de requête, procédez comme suit :
- Dans la liste Type, sélectionnez le type de données du paramètre.
- Dans le champ Valeur, saisissez la valeur du paramètre.
- Pour ajouter plusieurs paramètres, cliquez sur + Ajouter un paramètre de requête.
- Dans le champ Délai d'inactivité après, saisissez le nombre de secondes d'attente jusqu'à l'exécution de la requête.
Utiliser Terraform pour créer des connexions
Vous pouvez utiliser la ressource Terraform pour créer une connexion.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Pour consulter un exemple de modèle Terraform permettant de créer une connexion, consultez l'exemple de modèle.
Lorsque vous créez cette connexion à l'aide de Terraform, vous devez définir les variables suivantes dans votre fichier de configuration Terraform:
Nom du paramètre | Type de données | Requis | Description |
---|---|---|---|
project_id | STRING | Vrai | ID du projet contenant l'ensemble de données BigQuery (par exemple, "myproject"). |
dataset_id | STRING | Faux | ID de l'ensemble de données BigQuery sans le nom du projet (par exemple, "mon_ensemble_de_données"). |
proxy_enabled | VALEUR BOOLÉENNE | Faux | Cochez cette case pour configurer un serveur proxy pour la connexion. |
proxy_auth_scheme | ENUM | Faux | Type d'authentification à utiliser pour s'authentifier auprès du proxy ProxyServer. Les valeurs acceptées sont: BASIC, DIGEST et NONE. |
proxy_user | STRING | Faux | Nom d'utilisateur à utiliser pour s'authentifier auprès du proxy ProxyServer. |
proxy_password | SECRET | Faux | Mot de passe à utiliser pour s'authentifier auprès du proxy ProxyServer. |
proxy_ssltype | ENUM | Faux | Type SSL à utiliser lors de la connexion au proxy ProxyServer. Les valeurs acceptées sont: AUTO, ALWAYS, NEVER et TUNNEL. |
Limites du système
Le connecteur BigQuery peut traiter un maximum de huit transactions par seconde et par nœud, et limite les transactions au-delà de cette limite. Par défaut, les connecteurs d'intégration allouent deux nœuds (pour une meilleure disponibilité) à une connexion.
Pour en savoir plus sur les limites applicables à Integration Connectors, consultez la section Limites.
Types de données acceptés
Voici les types de données acceptés pour ce connecteur:
- ARRAY
- BIGINT
- BINARY
- BIT
- VALEUR BOOLÉENNE
- CHAR
- DATE
- DECIMAL
- DOUBLE
- FLOAT
- INTEGER
- LONGN VARCHAR
- LONG VARCHAR
- NCHAR
- NUMERIC
- NVARCHAR
- REAL
- INT PETIT
- TIME
- TIMESTAMP
- TINY INT
- VARBINARY
- VARCHAR
Problèmes connus
Le connecteur BigQuery n'est pas compatible avec la clé primaire d'une table BigQuery. Cela signifie que vous ne pouvez pas effectuer les opérations d'entité Get, Update et Delete à l'aide d'un entityId
.
Vous pouvez également utiliser la clause de filtre pour filtrer les enregistrements en fonction d'un ID.
Obtenir de l'aide auprès de la communauté Google Cloud
Vous pouvez publier vos questions et discuter de ce connecteur sur les forums Cloud de la communauté Google Cloud.
Étape suivante
- Découvrez comment suspendre et réactiver une connexion.
- Découvrez comment surveiller l'utilisation des connecteurs.
- Découvrez comment afficher les journaux des connecteurs.