Utiliser le pilote JDBC pour BigQuery
Le pilote Java Database Connectivity (JDBC) pour BigQuery connecte votre application Java à BigQuery, ce qui vous permet d'utiliser les fonctionnalités de BigQuery avec vos outils et votre infrastructure préférés. Ce pilote est conçu spécifiquement pour BigQuery et ne peut pas être utilisé avec d'autres produits ou services. Vous n'avez besoin d'aucune licence supplémentaire pour utiliser ce pilote.
Avant de commencer
- Assurez-vous de bien connaître les pilotes JDBC et le package
java.sql. - Vérifiez que votre système est configuré avec l'environnement d'exécution Java (JRE) 8.0 ou version ultérieure.
Configurer le pilote
Pour configurer le pilote JDBC pour BigQuery, vous devez l'installer, vous authentifier auprès de BigQuery et établir une connexion.
Installer le pilote
- Téléchargez l'un des packages JDBC suivants :
- Uber JAR : Un fichier JAR unique contenant toutes les dépendances.
- Fichier JAR fin avec dépendances : Fichier ZIP incluant un fichier JAR fin avec toutes les dépendances.
- Uber JAR ombragé. Un seul fichier JAR avec toutes les dépendances incluses et ombrées.
- Ajoutez le fichier JAR téléchargé à votre classpath afin que le compilateur et l'environnement d'exécution Java puissent localiser les classes JDBC nécessaires.
S'authentifier auprès de BigQuery
Le pilote JDBC pour BigQuery propose plusieurs options d'authentification :
- Utiliser un compte de service
- Utiliser un compte utilisateur Google
- Utiliser un jeton d'accès et d'actualisation pré-généré
- Utiliser les identifiants par défaut de l'application
- Utiliser une méthode externe
S'authentifier avec un compte de service
Lorsque vous établissez une connexion avec le pilote JDBC pour BigQuery, procédez comme suit :
- Définissez la propriété de connexion
OAuthTypesur0. - Définissez la propriété de connexion
ProjectIdsur le nom de votre projet BigQuery. - Effectuez l'une des opérations suivantes :
- Si vous utilisez une adresse e-mail et une clé de compte de service, définissez la propriété de connexion
OAuthServiceAcctEmailsur l'adresse e-mail de votre compte de service Google et la propriété de connexionOAuthPvtKeysur l'objet JSON de la clé du compte de service. PourOAuthPvtKey, vous pouvez utiliser l'objet JSON de la clé ou le chemin d'accès complet au fichier de clé. - Si vous utilisez un fichier de clé de compte de service, définissez la propriété de connexion
OAuthPvtKeyPathsur le chemin d'accès complet au fichier de clé du compte de service.
- Si vous utilisez une adresse e-mail et une clé de compte de service, définissez la propriété de connexion
Les deux exemples suivants utilisent l'authentification par compte de service :
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=0; OAuthServiceAcctEmail=bq-jdbc-sa@mytestproject.iam.gserviceaccount.com; OAuthPvtKey=my-sa-key
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=0; OAuthPvtKeyPath=path/to/file/secret.json;
S'authentifier avec un compte utilisateur Google
Lorsque vous établissez une connexion avec le pilote JDBC pour BigQuery, procédez comme suit :
- Définissez la propriété de connexion
OAuthTypesur1. - Définissez la propriété de connexion
ProjectIdsur le nom de votre projet BigQuery. - Définissez la propriété de connexion
OAuthClientIdsur votre ID client et la propriété de connexionOAuthClientSecretsur votre code secret du client.
Pour en savoir plus, consultez Utiliser OAuth 2.0 pour accéder aux API Google et Gérer les clients OAuth.
L'exemple suivant utilise l'authentification de compte utilisateur Google :
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=1; OAuthClientId=123456789012-abcdefghijklmnopqrstuvwxyz12345.apps.googleusercontent.com; OAuthClientSecret=_aB-C1D_E2fGh3Ij4kL5m6No7p8QR9sT0uV;
S'authentifier avec un jeton d'accès ou d'actualisation pré-généré
Lorsque vous établissez une connexion avec le pilote JDBC pour BigQuery, procédez comme suit :
- Définissez la propriété de connexion
OAuthTypesur2. - Définissez la propriété de connexion
ProjectIdsur le nom de votre projet BigQuery. - Effectuez l'une des opérations suivantes :
- Si vous utilisez un jeton d'accès prégénéré, définissez la propriété de connexion
OAuthAccessTokensur votre jeton d'accès. - Si vous utilisez un jeton d'actualisation pré-généré, définissez la propriété de connexion
OAuthRefreshTokensur votre jeton d'actualisation, la propriété de connexionOAuthClientIdsur votre ID client et la propriété de connexionOAuthClientSecretsur votre code secret du client.
- Si vous utilisez un jeton d'accès prégénéré, définissez la propriété de connexion
Pour en savoir plus, consultez Utiliser OAuth 2.0 pour accéder aux API Google.
L'exemple suivant utilise l'authentification par jeton d'accès pré-généré :
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=2; OAuthAccessToken=ya29.a0AfH6SMCiH1L-x_yZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_;
L'exemple suivant utilise l'authentification par jeton d'actualisation pré-généré :
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=2; OAuthClientId=123456789012-abcdefghijklmnopqrstuvwxyz12345.apps.googleusercontent.com; OAuthClientSecret=_aB-C1D_E2fGh3Ij4kL5m6No7p8QR9sT0uV; OAuthRefreshToken=1/fFAGRNJru1FTz70BzhT3Zg;
S'authentifier avec les Identifiants par défaut de l'application
Identifiants par défaut de l'application (ADC) sont une stratégie utilisée par les bibliothèques d'authentification pour rechercher automatiquement des identifiants en fonction de l'environnement d'application.
Lorsque vous établissez une connexion avec le pilote JDBC pour BigQuery, procédez comme suit :
- Définissez la propriété de connexion
OAuthTypesur3. - Définissez la propriété de connexion
ProjectIdsur le nom de votre projet BigQuery.
Pour en savoir plus, consultez la page Configurer les identifiants par défaut de l'application.
L'exemple suivant utilise l'authentification ADC :
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=3;
S'authentifier avec une méthode externe
Vous pouvez vous authentifier avec des méthodes externes telles que la fédération des identités des employés ou la fédération d'identité de charge de travail.
Lorsque vous établissez une connexion avec le pilote JDBC pour BigQuery, procédez comme suit :
- Définissez la propriété de connexion
OAuthTypesur4. - Définissez la propriété de connexion
ProjectIdsur le nom de votre projet BigQuery. - Effectuez l'une des opérations suivantes :
- Définissez la propriété de connexion
OAuthPvtKeyouOAuthPvtKeyPathsur le chemin d'accès complet du fichier de configuration. PourOAuthPvtKey, vous pouvez utiliser l'objet JSON de la clé ou le chemin d'accès complet au fichier de clé. - Définissez la propriété de connexion
OAuthPvtKeysur l'objet de configuration du compte externe brut. - Définissez les propriétés de connexion
BYOIDsuivantes, décrites dans la section Propriétés de connexion :BYOID_AudienceUriBYOID_CredentialSourceBYOID_PoolUserProjectBYOID_SA_Impersonation_UriBYOID_SubjectTokenTypeBYOID_TokenUri
- Définissez la propriété de connexion
Les exemples suivants utilisent des méthodes d'authentification externes :
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=4; OAuthPvtKeyPath=path/to/file/secret.json;
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=4; OAuthPvtKey=External_account_configuration_object;
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=4; BYOID_AudienceUri=//iam.googleapis.com/projects/my-project/locations/US-EAST1/workloadIdentityPools/my-pool-/providers/my-provider; BYOID_SubjectTokenType=urn:ietf:params:oauth:tokentype:id_token; BYOID_CredentialSource={\"file\":\"/path/to/file\"}; BYOID_SA_Impersonation_Uri=my-sa; BYOID_TokenUri=https://sts.googleapis.com/v1/token;"
Voici un exemple de fichier de configuration :
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/my_pool_name/providers/my_provider_name", "subject_token_type": "urn:ietf:params:oauth:token-type:id_token", "token_url": "https://sts.googleapis.com/v1/token", "credential_source": { "file": "/path/to/workforce/tokrn.txt" }, "workforce_pool_user_project": "my_project", "token_info_url": "https://sts.googleapis.com/v1/introspect" }
Établir une connexion
Pour établir une connexion avec le pilote JDBC pour BigQuery, procédez comme suit :
Ajoutez la dépendance
google-cloud-bigquery-jdbcà votre fichier de compilation Maven POM/Gradle :<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-bigquery-jdbc</artifactId> <version>0.0.1</version> <scope>system</scope> <systemPath>path/to/file/google-jdbc-jar-with-dependencies.jar</systemPath> </dependency>
Si vous utilisez un projet Gradle, ajoutez également les éléments suivants au fichier de compilation :
dependencies { // ... other dependencies implementation files('path/to/file/google-jdbc-jar-with-dependencies.jar') }
Identifiez votre chaîne de connexion pour le pilote JDBC. Cette chaîne contient toutes les informations essentielles requises pour établir une connexion entre votre application Java et une base de données spécifique. La chaîne de connexion du pilote JDBC pour BigQuery se présente comme suit :
jdbc:bigquery://HOST:PORT;ProjectId=PROJECT_ID;OAuthType=AUTH_TYPE;PROPERTIES
Remplacez les éléments suivants :
HOST: adresse DNS ou IP du serveur.PORT: numéro de port TCP.PROJECT_ID: ID de votre projet BigQuery.AUTH_TYPE: nombre spécifiant le type d'authentification que vous avez utilisé. Choisissez l'une des options suivantes :0: Authentification du compte de service Google1: authentification du compte utilisateur Google2: authentification par jeton d'actualisation ou jeton d'accès pré-généré3: authentification avec les identifiants par défaut de l'application4: méthodes d'authentification externes, telles que la fédération d'identité de personnel ou la fédération d'identité de charge de travail
PROPERTIES: propriétés de connexion supplémentaires pour le pilote JDBC. Les propriétés doivent être listées au formatproperty_1=value_1; property_2=value_2;.... Les noms de propriétés ne sont pas sensibles à la casse. Pour obtenir la liste complète des propriétés de connexion, consultez Propriétés de connexion.
Connectez-vous au pilote avec la classe
DriverManagerouDataSource.Connectez-vous à la classe
DriverManager:import java.sql.Connection; import java.sql.DriverManager; private static Connection getJdbcConnectionDM(){ Connection connection = DriverManager.getConnection(CONNECTION_STRING); return connection; }
Remplacez
CONNECTION_STRINGpar la chaîne de connexion de l'étape précédente.Connectez-vous à la classe
DataSource:import com.google.cloud.bigquery.jdbc.DataSource; import java.sql.Connection; import java.sql.SQLException; private static public Connection getJdbcConnectionDS() throws SQLException { Connection connection = null; DataSource dataSource = new com.google.cloud.bigquery.jdbc.DataSource(); dataSource.setURL(CONNECTION_STRING); connection = dataSource.getConnection(); return connection; }
Remplacez
CONNECTION_STRINGpar la chaîne de connexion de l'étape précédente.La classe
DataSourcepossède également des méthodes setter, que vous pouvez utiliser pour définir les propriétés de connexion, plutôt que d'inclure chaque propriété dans la chaîne de connexion. En voici un exemple :private static Connection getConnection() throws SQLException { DataSource ds = new DataSource(); ds.setURL(CONNECTION_STRING); ds.setAuthType(3); // Application Default Credentials ds.setProjectId("MyTestProject"); ds.setEnableHighThroughputAPI(true); ds.setLogLevel("6"); ds.setUseQueryCache(false); return ds.getConnection(); }
Découvrir les fonctionnalités pour les conducteurs
Maintenant que vous êtes connecté au pilote JDBC pour BigQuery, vous pouvez explorer ses fonctionnalités.
Connecteur SQL
Le connecteur SQL vous permet d'exécuter des requêtes SQL avec BigQuery. Utilisez la propriété de connexion QueryDialect pour spécifier le dialecte SQL que vous souhaitez utiliser.
Mappage des types de données
Le pilote JDBC pour BigQuery accepte les mappages de types de données suivants :
| Type BigQuery | Type SQL | Type Java |
|---|---|---|
ARRAY |
ARRAY |
Array |
BIGNUMERIC |
NUMERIC |
BigDecimal |
BOOL |
BOOLEAN |
Boolean |
BYTES |
VARBINARY |
byte[] |
DATE |
DATE |
Date |
DATETIME |
OTHER |
String |
FLOAT64 |
DOUBLE |
Double |
GEOGRAPHY |
OTHER |
String |
INT64 |
BIGINT |
Long |
INTERVAL |
OTHER |
String |
JSON |
OTHER |
String |
NUMERIC |
NUMERIC |
BigDecimal |
STRING |
NVARCHAR |
String |
STRUCT |
STRUCT |
Struct |
TIME |
TIME |
Time |
TIMESTAMP |
TIMESTAMP |
Timestamp |
Enregistrements imbriqués et répétés
Le pilote JDBC pour BigQuery est compatible avec les enregistrements imbriqués et répétés, où le pilote renvoie le type de base sous la forme d'un objet struct ou d'une représentation sous forme de chaîne d'un objet JSON.
Voici un exemple d'interrogation de l'enregistrement de base des données structurées :
ResultSet resultSet = statement.executeQuery("SELECT STRUCT(\"Adam\" as name, 5 as age)"); resultSet.next(); Struct obj = (Struct) resultSet.getObject(1); System.out.println(obj.toString());
Le résultat est le suivant :
{
"v": {
"f": [
{
"v": "Adam"
},
{
"v": "5"
}
]
}
}Voici un exemple de requête de sous-composants d'un objet struct :
ResultSet resultSet = statement.executeQuery("SELECT STRUCT(\"Adam\" as name, 5 as age)"); resultSet.next(); Struct structObject = (Struct) resultSet.getObject(1); Object[] structComponents = structObject.getAttributes(); for (Object component : structComponents){ System.out.println(component.toString()); }
Voici un exemple de requête pour une série standard de données répétées :
// Execute Query ResultSet resultSet = statement.executeQuery("SELECT [1,2,3]"); resultSet.next(); Object[] arrayObject = (Object[]) resultSet.getArray(1).getArray(); // Verify Result int count =0; for (; count < arrayObject.length; count++) { System.out.println(arrayObject[count]); }
Voici un exemple de requête pour un tableau structuré de données répétées :
// Execute Query ResultSet resultSet = statement.executeQuery("SELECT " + "[STRUCT(\"Adam\" as name, 12 as age), " + "STRUCT(\"Lily\" as name, 17 as age)]"); Struct[] arrayObject = (Struct[]) resultSet.getArray(1).getArray(); // Verify Result for (int count =0; count < arrayObject.length; count++) { System.out.println(arrayObject[count]); }
Ensemble de résultats volumineux
Pour récupérer des ensembles de résultats volumineux lorsque vous utilisez le pilote JDBC pour BigQuery, procédez comme suit :
- Si la propriété de connexion
QueryDialectest définie surSQL, spécifiez un ensemble de données et une table pour stocker les résultats avec les propriétés de connexionLargeResultDatasetetLargeResultTable. - Si la propriété de connexion
QueryDialectest définie surBIG_QUERY, définissez la propriété de connexionAllowLargeResultssurTRUE, puis spécifiez un ensemble de données et une table pour stocker les résultats avec les propriétés de connexionLargeResultDatasetetLargeResultTable.
Dans les deux cas, vous pouvez utiliser la propriété de connexion LargeResultsDatasetExpirationTime pour spécifier la durée de vie de l'ensemble de données de destination.
Si vous ne spécifiez pas de valeurs pour les propriétés de connexion LargeResultDataset et LargeResultTable, le pilote JDBC pour BigQuery crée un ensemble de données masqué nommé _google_jdbc et une table temporaire dans cet ensemble.
Ces ressources sont automatiquement supprimées au bout de 24 heures.
Tous les quotas et limites BigQuery restent applicables.
Paramètres positionnels
Les paramètres positionnels sont des espaces réservés dans une instruction SQL qui représentent des valeurs à fournir lors de l'exécution de la requête. Le pilote JDBC pour BigQuery est compatible avec les paramètres positionnels utilisant le symbole point d'interrogation (?). Voici un exemple de requête utilisant un paramètre positionnel :
PreparedStatement preparedStatement = connection.prepareStatement( "SELECT * FROM MyTestTable where testColumn = ?"); preparedStatement.setString(1, "string2"); ResultSet resultSet = statement.executeQuery(selectQuery);
SELECT requêtes
Vous pouvez utiliser le pilote JDBC pour BigQuery afin d'exécuter des requêtes SELECT via l'API BigQuery ou l'API BigQuery Storage Read.
Si vous utilisez l'API BigQuery, définissez la propriété de connexion JobCreationMode pour spécifier si la requête s'exécute avec ou sans création de tâche.
Si vous utilisez l'API Storage Read, utilisez la propriété de connexion EnableHighThroughputAPI pour activer l'API et vérifiez que les conditions suivantes sont remplies :
- Le schéma n'utilise pas le type
INTERVAL. - Le nombre total de lignes est inférieur à la valeur de la propriété de connexion
HighThroughputMinTableSize. - Le ratio entre le nombre de lignes et la taille de la page est inférieur à la valeur de la propriété de connexion
HighThroughputActivationRatio.
Insertion groupée
Pour effectuer des opérations d'insertion groupée avec le pilote JDBC pour BigQuery, utilisez la méthode executeBatch.
Voici un exemple d'opération d'écriture :
Connection conn = DriverManager.getConnection(connectionUrl); PreparedStatement statement = null; Statement st = conn.createStatement(); final String insertQuery = String.format( "INSERT INTO `%s.%s.%s` " + " (StringField, IntegerField, BooleanField) VALUES(?, ?, ?);", DEFAULT_CATALOG, DATASET, TABLE_NAME); statement = conn.prepareStatement(insertQuery1); for (int i=0; i<2000; ++i) { statement.setString(1, i+"StringField"); statement.setInt(2, i); statement.setBoolean(3, true); statement.addBatch(); } statement.executeBatch();
Journalisation
Le pilote JDBC pour BigQuery est compatible avec l'enregistrement des actions dans le pilote via Java Util Logging. La journalisation peut affecter les performances. N'activez-la que pour capturer un problème, puis désactivez-la une fois que vous avez terminé.
Pour configurer la journalisation :
Définissez la propriété
LogLevelselon le tableau suivant :Valeur LogLevelLogLevelDescription 0OFFAucun message n'est consigné. 1SEVEREDéfaillances ou erreurs graves ayant un impact sur les fonctionnalités de l'application. 2WARNINGProblèmes ou situations potentielles pouvant nécessiter votre attention. 3INFOMessages d'information sur les événements normaux et la progression. 4CONFIGMessages concernant les informations de configuration statiques. 5FINEMessages de traçage généraux. 6FINERMessages de traçage détaillés. 7FINESTMessages de trace très détaillés, utiles pour un débogage approfondi. 8ALLTous les messages sont consignés. Définissez la propriété
LogPathsur le chemin d'accès complet du dossier dans lequel vous souhaitez enregistrer le fichier journal.
Vous pouvez également configurer la journalisation avec les variables d'environnement BIGQUERY_JDBC_LOG_LEVEL et BIGQUERY_JDBC_LOG_PATH.
Propriétés de connexion
Dans un pilote JDBC, les propriétés de connexion sont des paramètres de configuration que vous pouvez inclure dans la chaîne de connexion ou transmettre via les méthodes setter lorsque vous établissez une connexion à une base de données. Les propriétés de connexion suivantes sont compatibles avec le pilote JDBC pour BigQuery.
AdditionalProjects
Cette propriété de connexion permet aux requêtes et aux opérations sur les métadonnées d'accéder aux ensembles de données dans les projets spécifiés, en plus du projet principal défini dans la chaîne de connexion.
- Valeur par défaut : N/A
- Type de données : chaîne (chaîne d'ID de projet séparés par une virgule)
- Obligatoire : non
AllowLargeResults
Cette propriété de connexion indique si le pilote traite les résultats de requête supérieurs à 128 Mo lorsque la propriété de connexion QueryDialect est définie sur BIG_QUERY. Si la propriété de connexion QueryDialect est définie sur SQL, la propriété de connexion AllowLargeResults est définie sur TRUE par défaut. Pour en savoir plus, consultez Ensemble de résultats volumineux.
- Valeur par défaut :
TRUE. - Type de données : booléen
- Obligatoire : non
BYOID_AudienceUri
Cette propriété de connexion spécifie la propriété d'audience dans un fichier de configuration de compte externe. La propriété "audience" contient le nom de ressource du pool d'identités de charge de travail ou du pool de collaborateurs, ainsi que l'identifiant du fournisseur dans ce pool.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : uniquement lorsque
OAuthType=4
BYOID_CredentialSource
Cette propriété de connexion définit les informations de récupération du jeton et les informations environnementales.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : uniquement lorsque
OAuthType=4
BYOID_PoolUserProject
Cette propriété de connexion définit le projet utilisateur lorsque le pool d'employés est utilisé. Le projet doit disposer de l'autorisation IAM serviceusage.services.use.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : uniquement lorsque
OAuthType=4est utilisé et que le pool de personnel est utilisé
BYOID_SA_Impersonation_Uri
Cette propriété de connexion définit l'URL pour l'usurpation d'identité du compte de service lorsque des pools d'identités de charge de travail sont utilisés et que les API n'ont pas été intégrées à UberMint.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : uniquement lorsque
OAuthType=4et que vous utilisez un pool d'identités de charge de travail avec l'emprunt d'identité d'un compte de service
BYOID_SubjectTokenType
Cette propriété de connexion définit le jeton STS en fonction de la spécification d'échange de jetons. La valeur doit correspondre à l'un des éléments suivants :
Urn:ietf:params:oauth:token-type:jwtUrn:ietf:params:oauth:token-type:id_tokenUrn:ietf:params:oauth:token-type:saml2urn:ietf:params:aws:token-type:aws4_request- Valeur par défaut :
urn:ietf:params:oauth:tokentype:id_token. - Type de données : chaîne
- Obligatoire : uniquement lorsque
OAuthType=4
BYOID_TokenUri
Cette propriété de connexion définit le point de terminaison d'échange de jetons STS.
- Valeur par défaut :
https://sts.googleapis.com/v1/token. - Type de données : chaîne
- Obligatoire : non
ConnectionPoolSize
Cette propriété de connexion définit la taille du pool de connexions si le regroupement de connexions est activé.
- Valeur par défaut :
10. - Type de données : long
- Obligatoire : non
DefaultDataset
Cette propriété de connexion spécifie l'ensemble de données utilisé lorsque vous exécutez une requête sans spécifier explicitement un ensemble de données. Vous pouvez utiliser le format DATASET_ID ou PROJECT_ID.DATASET_ID.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
EnableHighThroughputAPI
Cette propriété de connexion détermine si l'API Storage Read peut être utilisée. Les propriétés de connexion HighThroughputActivationRatio et HighThroughputMinTableSize doivent également être respectées pour utiliser l'API Storage Read.
- Valeur par défaut :
FALSE. - Type de données : booléen
- Obligatoire : non
EnableSession
Cette propriété de connexion détermine si la connexion démarre une session. Lorsqu'il est utilisé, l'ID de session est transmis à toutes les requêtes suivantes.
- Valeur par défaut :
FALSE. - Type de données : booléen
- Obligatoire : non
EnableWriteAPI
Cette propriété de connexion détermine si l'API Storage Write peut être utilisée. La valeur de ce champ doit correspondre à TRUE pour activer les insertions groupées.
- Valeur par défaut :
FALSE. - Type de données : booléen
- Obligatoire : non
EndpointOverrides
Cette propriété de connexion définit des points de terminaison personnalisés dans une chaîne séparée par des virgules.
- Valeurs par défaut :
BIGQUERY=https://bigquery.googleapis.comREAD_API=https://bigquerystorage.googleapis.comOAUTH2=https://oauth2.googleapis.comSTS=https://sts.googleapis.com
- Type de données : chaîne
- Obligatoire : non
FilterTablesOnDefaultDataset
Cette propriété de connexion contrôle le champ d'application des métadonnées renvoyées par les méthodes DatabaseMetaData.getTables() et DatabaseMetaData.getColumns().
Lorsque la propriété est désactivée, aucun filtrage n'a lieu. La propriété de connexion DefaultDataset doit également être définie pour activer le filtrage.
- Valeur par défaut :
FALSE. - Type de données : booléen
- Obligatoire : non
HighThroughputActivationRatio
Cette propriété de connexion définit un seuil pour le nombre de pages dans une réponse à une requête. Lorsque ce nombre est dépassé et que les conditions EnableHighThroughputAPI et HighThroughputMinTableSize sont remplies, le pilote commence à utiliser l'API Storage Read.
- Valeur par défaut :
2. - Type de données : nombre entier
- Obligatoire : non
HighThroughputMinTableSize
Cette propriété de connexion définit un seuil pour le nombre de lignes dans une réponse à une requête. Lorsque ce nombre est dépassé et que les conditions EnableHighThroughputAPI et HighThroughputActivationRatio sont remplies, le pilote commence à utiliser l'API Storage Read.
- Valeur par défaut :
100. - Type de données : nombre entier
- Obligatoire : non
JobCreationMode
Cette propriété de connexion détermine si les requêtes sont exécutées sans créer de jobs. Une valeur 1 signifie que des jobs sont créés pour chaque requête, et une valeur 2 signifie que les requêtes peuvent être exécutées sans jobs.
- Valeur par défaut :
2. - Type de données : nombre entier
- Obligatoire : non
JobTimeout
Cette propriété de connexion définit le délai avant expiration du job (en secondes), au-delà duquel le job est annulé sur le serveur.
- Valeur par défaut :
0. - Type de données : long
- Obligatoire : non
KMSKeyName
Cette propriété de connexion définit le nom de la clé KMS pour le chiffrement des données.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
Labels
Cette propriété de connexion définit les libellés associés à la requête pour organiser et regrouper les tâches de requête.
- Valeur par défaut : N/A
- Type de données : Map<String, String>
- Obligatoire : non
LargeResultDataset
Cette propriété de connexion définit l'ensemble de données de destination pour les résultats de requête. Pour en savoir plus, consultez Ensemble de résultats volumineux.
- Valeur par défaut :
_google_jdbc, uniquement lorsqueQueryDialect=BIG_QUERYou lorsqueQueryDialect=SQLet que la propriété de connexionLargeResultTableest définie - Type de données : chaîne
- Obligatoire : non
LargeResultsDatasetExpirationTime
Cette propriété de connexion spécifie la durée de vie de toutes les tables d'un ensemble de données, en millisecondes. Cette propriété est ignorée si un délai d'expiration par défaut est déjà défini pour l'ensemble de données.
- Valeur par défaut :
3600000. - Type de données : long
- Obligatoire : non
LargeResultTable
Cette propriété de connexion définit la table de destination des résultats de la requête. Pour en savoir plus, consultez Ensemble de résultats volumineux.
- Valeur par défaut :
temp_table..., uniquement lorsqueQueryDialect=BIG_QUERYou lorsqueQueryDialect=SQLet la propriété de connexionLargeResultTablesont définies - Type de données : chaîne
- Obligatoire : non
ListenerPoolSize
Cette propriété de connexion définit la taille du pool d'écouteurs si le regroupement de connexions est activé.
- Valeur par défaut :
10. - Type de données : long
- Obligatoire : non
Location
Cette propriété de connexion spécifie l'emplacement où les ensembles de données sont créés ou interrogés. BigQuery détermine automatiquement l'emplacement si cette valeur n'est pas définie.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
LogLevel
Cette propriété de connexion contrôle le niveau de détail enregistré lors des interactions avec la base de données. Pour obtenir des descriptions des niveaux, consultez Journalisation.
- Valeur par défaut :
0. - Type de données : nombre entier
- Obligatoire : non
LogPath
Cette propriété de connexion définit le répertoire dans lequel les fichiers journaux sont écrits. Pour en savoir plus, consultez la section Journalisation.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
MaximumBytesBilled
Cette propriété de connexion limite le nombre d'octets facturés. Les requêtes dont les octets facturés dépassent cette limite échouent sans entraîner de frais.
- Valeur par défaut :
0. - Type de données : long
- Obligatoire : non
MaxResults
Cette propriété de connexion définit le nombre maximal de résultats par page.
- Valeur par défaut :
10000. - Type de données : long
- Obligatoire : non
MetaDataFetchThreadCount
Cette propriété de connexion configure le nombre de threads utilisés pour les méthodes de métadonnées de la base de données.
- Valeur par défaut :
32. - Type de données : nombre entier
- Obligatoire : non
OAuthAccessToken
Cette propriété de connexion spécifie le jeton d'accès utilisé pour l'authentification par jeton d'accès pré-généré.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : lorsque
AUTH_TYPE=2
OAuthClientId
Cette propriété de connexion définit l'ID client pour l'authentification par jeton d'actualisation pré-généré et l'authentification par compte utilisateur.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : lorsque
AUTH_TYPE=1ouAUTH_TYPE=2
OAuthClientSecret
Cette propriété de connexion définit le code secret du client pour l'authentification par jeton d'actualisation pré-généré et l'authentification par compte utilisateur.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : lorsque
AUTH_TYPE=1ouAUTH_TYPE=2
OAuthP12Password
Cette propriété de connexion définit le mot de passe du fichier de clé PKCS12.
- Valeur par défaut :
notasecret. - Type de données : chaîne
- Obligatoire : non
OAuthPvtKey
Cette propriété de connexion définit la clé du compte de service lorsque vous utilisez l'authentification par compte de service. Cette valeur peut être un objet de fichier de clé JSON brut ou un chemin d'accès au fichier de clé JSON.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : lorsque
AUTH_TYPE=0et la valeurOAuthPvtKeyPathne sont pas définis
OAuthPvtKeyPath
Cette propriété de connexion définit le chemin d'accès à la clé du compte de service lorsque vous utilisez l'authentification par compte de service.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : lorsque
AUTH_TYPE=0et les valeursOAuthPvtKeyetOAuthServiceAcctEmailne sont pas définies
OAuthRefreshToken
Cette propriété de connexion définit le jeton d'actualisation pour l'authentification par jeton d'actualisation pré-généré. Un jeton d'actualisation OAuth 2.0 est un type spécial de jeton qui permet à une application d'obtenir un nouveau jeton d'accès lorsque celui en cours expire, sans que l'utilisateur ait besoin de se réauthentifier.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : lorsque
AUTH_TYPE=2
OAuthServiceAcctEmail
Cette propriété de connexion définit l'adresse e-mail du compte de service lorsque vous utilisez l'authentification par compte de service.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : lorsque
AUTH_TYPE=0et la valeurOAuthPvtKeyPathne sont pas définis
OAuthType
Cette propriété de connexion spécifie le type d'authentification. La valeur doit correspondre à l'un des éléments suivants :
0: Authentification du compte de service Google1: authentification du compte utilisateur Google2: authentification par jeton d'actualisation ou jeton d'accès pré-généré3: authentification avec les identifiants par défaut de l'application4: méthodes d'authentification externes, telles que la fédération d'identité de personnel ou la fédération d'identité de charge de travail- Valeur par défaut :
-1. - Type de données : nombre entier
- Obligatoire : oui
PartnerToken
Cette propriété de connexion est utilisée par les partenaires Google Cloud pour suivre l'utilisation du pilote.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
PrivateServiceConnectUris
Cette propriété de connexion est identique à la propriété EndpointOverrides. Utilisez plutôt la propriété EndpointOverrides.
ProjectId
Cette propriété de connexion définit l'ID de projet par défaut pour le pilote. Ce projet est utilisé pour exécuter des requêtes et est facturé pour l'utilisation des ressources. S'il n'est pas défini, le pilote déduit un ID de projet.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non, mais fortement recommandé
ProxyHost
Cette propriété de connexion définit le nom d'hôte ou l'adresse IP d'un serveur proxy par lequel la connexion JDBC est acheminée.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
ProxyPort
Cette propriété de connexion définit le numéro de port sur lequel le serveur proxy écoute les connexions.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
ProxyPwd
Cette propriété de connexion définit le mot de passe nécessaire pour l'authentification lors de la connexion via un serveur proxy qui l'exige.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
ProxyUid
Cette propriété de connexion définit le nom d'utilisateur nécessaire pour l'authentification lors de la connexion via un serveur proxy qui l'exige.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
QueryDialect
Cette propriété de connexion définit le dialecte SQL pour l'exécution des requêtes. Utilisez SQL pour GoogleSQL (vivement recommandé) et BIG_QUERY pour l'ancien SQL.
- Valeur par défaut :
SQL. - Type de données : chaîne
- Obligatoire : non
QueryProperties
Cette propriété de connexion configure les modifications du comportement des requêtes.
Voici un exemple de configuration dans la chaîne de connexion :
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; QueryProperties=dataset_project_id=TestProjectID,time_zone=America/New_York;
Voici un exemple défini dans la classe DataSource :
Map<String, String> queryProperties = new HashMap<>(); queryProperties.put("dataset_project_id", "TestProjectID"); queryProperties.put("time_zone", "America/New_York"); DataSource dataSource = new DataSource(); dataSource.setQueryProperties(queryProperties);
Pour en savoir plus, consultez ConnectionProperty.
- Valeur par défaut : N/A
- Type de données : Map<String, String>
- Obligatoire : non
RequestGoogleDriveScope
Cette propriété de connexion est utilisée pour demander l'accès à Google Drive. Lorsque cette option est activée, le champ Drive en lecture seule est ajouté à la connexion. Pour activer cette propriété, définissez la valeur sur 1.
- Valeur par défaut :
0. - Type de données : nombre entier
- Obligatoire : non
RetryInitialDelay
Cette propriété de connexion définit le délai (en secondes) avant la première tentative.
- Valeur par défaut :
0. - Type de données : long
- Obligatoire : non
RetryMaxDelay
Cette propriété de connexion définit la limite maximale (en secondes) du délai de nouvelle tentative.
- Valeur par défaut :
0. - Type de données : long
- Obligatoire : non
ServiceAccountImpersonationChain
Cette propriété de connexion spécifie une liste d'adresses e-mail de comptes de service séparées par une virgule dans la chaîne d'emprunt d'identité.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
ServiceAccountImpersonationEmail
Cette propriété de connexion définit l'adresse e-mail du compte de service dont l'identité doit être empruntée.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
ServiceAccountImpersonationScopes
Cette propriété de connexion spécifie une liste de champs d'application OAuth2 séparés par une virgule à utiliser avec le compte usurpé.
- Valeur par défaut :
https://www.googleapis.com/auth/bigquery. - Type de données : chaîne
- Obligatoire : non
ServiceAccountImpersonationTokenLifetime
Cette propriété de connexion définit la durée de vie du jeton du compte usurpé (en secondes).
- Valeur par défaut :
3600. - Type de données : nombre entier
- Obligatoire : non
SSLTrustStore
Cette propriété de connexion spécifie le chemin d'accès complet au Java TrustStore contenant les certificats d'autorité de certification (CA) de confiance. Le pilote utilise ce truststore pour valider l'identité du serveur lors du handshake SSL/TLS.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : non
SSLTrustStorePwd
Cette propriété de connexion spécifie le mot de passe du truststore Java spécifié dans la propriété SSLTrustStore.
- Valeur par défaut : N/A
- Type de données : chaîne
- Obligatoire : uniquement si vous utilisez un TrustStore Java protégé par un mot de passe
SWA_ActivationRowCount
Cette propriété de connexion définit un seuil de nombre de lignes executeBatch insert. Lorsque ce seuil est dépassé, le connecteur passe à l'API Storage Write.
- Valeur par défaut :
3. - Type de données : nombre entier
- Obligatoire : non
SWA_AppendRowCount
Cette propriété de connexion définit la taille du flux d'écriture.
- Valeur par défaut :
1000. - Type de données : nombre entier
- Obligatoire : non
Timeout
Cette propriété de connexion définit la durée, en secondes, pendant laquelle le connecteur réessaie un appel d'API ayant échoué avant d'expirer.
- Valeur par défaut :
0. - Type de données : long
- Obligatoire : non
UniverseDomain
Cette propriété de connexion définit le domaine de l'univers, qui est le domaine de premier niveau associé aux ressources Google Cloud de votre organisation.
- Valeur par défaut :
googleapis.com. - Type de données : chaîne
- Obligatoire : non
UnsupportedHTAPIFallback
Cette propriété de connexion détermine si le connecteur revient à l'API REST (lorsqu'elle est définie sur TRUE) ou renvoie une erreur (lorsqu'elle est définie sur FALSE).
- Valeur par défaut :
TRUE. - Type de données : booléen
- Obligatoire : non
UseQueryCache
Cette propriété de connexion permet la mise en cache des requêtes.
- Valeur par défaut :
TRUE. - Type de données : booléen
- Obligatoire : non