Utilizza il driver JDBC per BigQuery
Il driver Java Database Connectivity (JDBC) per BigQuery connette la tua applicazione Java a BigQuery, consentendoti di utilizzare le funzionalità di BigQuery con gli strumenti e l'infrastruttura che preferisci. Questo driver è progettato specificamente per BigQuery e non può essere utilizzato con altri prodotti o servizi. Per utilizzare questo driver non sono necessarie licenze aggiuntive.
Prima di iniziare
- Assicurati di avere familiarità con i driver JDBC e il
pacchetto
java.sql. - Verifica che il sistema sia configurato con Java Runtime Environment (JRE) 8.0 o versioni successive.
Configurare il driver
Per configurare il driver JDBC per BigQuery, devi installarlo, autenticarti in BigQuery e stabilire una connessione.
Installare il driver
- Scarica uno dei seguenti pacchetti JDBC:
- Uber JAR. Un unico file JAR con tutte le dipendenze incluse.
- Thin JAR con dipendenze. Un file zip che include un file JAR sottile con tutte le dipendenze.
- Uber JAR ombreggiato. Un unico file JAR con tutte le dipendenze incluse e ombreggiate.
- Aggiungi il file JAR scaricato al classpath in modo che il compilatore Java e il runtime possano individuare le classi JDBC necessarie.
Autenticarsi in BigQuery
Il driver JDBC per BigQuery offre diverse opzioni di autenticazione:
- utilizza un service account
- Utilizzo di un account utente Google
- Utilizzo di un token di accesso e di aggiornamento pregenerato
- Utilizzo delle credenziali predefinite dell'applicazione
- Utilizzo di un metodo esterno
Autenticarsi con un account di servizio
Quando stabilisci una connessione con il driver JDBC per BigQuery, procedi nel seguente modo:
- Imposta la proprietà di connessione
OAuthTypesu0. - Imposta la proprietà di connessione
ProjectIdsul nome del tuo progetto BigQuery. - Esegui una delle seguenti operazioni:
- Se utilizzi un'email e una chiave dell'account di servizio, imposta la proprietà di connessione
OAuthServiceAcctEmailsull'indirizzo email dell'account di servizio Google e imposta la proprietà di connessioneOAuthPvtKeysull'oggetto JSON della chiave dell'account di servizio. PerOAuthPvtKey, puoi utilizzare l'oggetto JSON della chiave o il percorso completo del file di chiave. - Se utilizzi un file delle chiavi di un account di servizio, imposta la proprietà di connessione
OAuthPvtKeyPathsul percorso completo del file delle chiavi del service account.
- Se utilizzi un'email e una chiave dell'account di servizio, imposta la proprietà di connessione
I due esempi seguenti utilizzano l'autenticazione del account di servizio:
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;
Autenticarsi con un account utente Google
Quando stabilisci una connessione con il driver JDBC per BigQuery, procedi nel seguente modo:
- Imposta la proprietà di connessione
OAuthTypesu1. - Imposta la proprietà di connessione
ProjectIdsul nome del tuo progetto BigQuery. - Imposta la proprietà di connessione
OAuthClientIdsull'ID client e la proprietà di connessioneOAuthClientSecretsul client secret.
Per saperne di più, consulta Utilizzare OAuth 2.0 per accedere alle API di Google e Gestire i client OAuth.
L'esempio seguente utilizza l'autenticazione dell'account utente Google:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=1; OAuthClientId=123456789012-abcdefghijklmnopqrstuvwxyz12345.apps.googleusercontent.com; OAuthClientSecret=_aB-C1D_E2fGh3Ij4kL5m6No7p8QR9sT0uV;
Autenticarsi con un token di accesso o di aggiornamento pregenerato
Quando stabilisci una connessione con il driver JDBC per BigQuery, procedi nel seguente modo:
- Imposta la proprietà di connessione
OAuthTypesu2. - Imposta la proprietà di connessione
ProjectIdsul nome del tuo progetto BigQuery. - Esegui una delle seguenti operazioni:
- Se utilizzi un token di accesso pregenerato, imposta la proprietà di connessione
OAuthAccessTokensul token di accesso. - Se utilizzi un token di aggiornamento pregenerato, imposta la proprietà di connessione
OAuthRefreshTokensul token di aggiornamento, la proprietà di connessioneOAuthClientIdsull'ID client e la proprietà di connessioneOAuthClientSecretsul client secret.
- Se utilizzi un token di accesso pregenerato, imposta la proprietà di connessione
Per saperne di più, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.
Il seguente esempio utilizza l'autenticazione con token di accesso pregenerato:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=2; OAuthAccessToken=ya29.a0AfH6SMCiH1L-x_yZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_;
L'esempio seguente utilizza l'autenticazione con token di aggiornamento pregenerato:
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;
Eseguire l'autenticazione con le Credenziali predefinite dell'applicazione
Credenziali predefinite dell'applicazione (ADC) sono una strategia utilizzata dalle librerie di autenticazione per trovare automaticamente le credenziali in base all'ambiente dell'applicazione.
Quando stabilisci una connessione con il driver JDBC per BigQuery, procedi nel seguente modo:
- Imposta la proprietà di connessione
OAuthTypesu3. - Imposta la proprietà di connessione
ProjectIdsul nome del tuo progetto BigQuery.
Per saperne di più, consulta Configurare le credenziali predefinite dell'applicazione.
Il seguente esempio utilizza l'autenticazione ADC:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=3;
Autenticarsi con un metodo esterno
Puoi eseguire l'autenticazione con metodi esterni come la federazione delle identità per la forza lavoro o la federazione delle identità per i workload.
Quando stabilisci una connessione con il driver JDBC per BigQuery, procedi nel seguente modo:
- Imposta la proprietà di connessione
OAuthTypesu4. - Imposta la proprietà di connessione
ProjectIdsul nome del tuo progetto BigQuery. - Esegui una delle seguenti operazioni:
- Imposta la proprietà di connessione
OAuthPvtKeyo la proprietà di connessioneOAuthPvtKeyPathsul percorso completo del file di configurazione. PerOAuthPvtKey, puoi utilizzare l'oggetto JSON della chiave o il percorso completo del file di chiave. - Imposta la proprietà di connessione
OAuthPvtKeysull'oggetto di configurazione dell'account esterno non elaborato. - Imposta le seguenti proprietà di connessione
BYOID, descritte nella sezione Proprietà di connessione:BYOID_AudienceUriBYOID_CredentialSourceBYOID_PoolUserProjectBYOID_SA_Impersonation_UriBYOID_SubjectTokenTypeBYOID_TokenUri
- Imposta la proprietà di connessione
I seguenti esempi utilizzano metodi di autenticazione esterni:
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;"
Di seguito è riportato un esempio di file di configurazione:
{ "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" }
Stabilire una connessione
Per stabilire una connessione con il driver JDBC per BigQuery:
Aggiungi la dipendenza
google-cloud-bigquery-jdbcal file di build 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>
Se utilizzi un progetto Gradle, aggiungi quanto segue anche al file di build:
dependencies { // ... other dependencies implementation files('path/to/file/google-jdbc-jar-with-dependencies.jar') }
Identifica la stringa di connessione per il driver JDBC. Questa stringa acquisisce tutte le informazioni essenziali necessarie per stabilire una connessione tra l'applicazione Java e un database specifico. Il driver JDBC per la stringa di connessione BigQuery ha il seguente formato:
jdbc:bigquery://HOST:PORT;ProjectId=PROJECT_ID;OAuthType=AUTH_TYPE;PROPERTIES
Sostituisci quanto segue:
HOST: il DNS o l'indirizzo IP del server.PORT: il numero di porta TCP.PROJECT_ID: l'ID del tuo progetto BigQuery.AUTH_TYPE: un numero che specifica il tipo di autenticazione che hai utilizzato. Uno dei seguenti:0: Autenticazione del account di servizio Google1: autenticazione dell'account utente Google2: Autenticazione con token di aggiornamento o token di accesso pregenerato3: Autenticazione delle credenziali predefinite dell'applicazione4: metodi di autenticazione esterni, come la federazione delle identità per la forza lavoro o la federazione delle identità per i workload
PROPERTIES: proprietà di connessione aggiuntive per il driver JDBC. Le proprietà devono essere elencate nel formatoproperty_1=value_1; property_2=value_2;.... I nomi delle proprietà non fanno distinzione tra maiuscole e minuscole. Per un elenco completo delle proprietà di connessione, consulta Proprietà di connessione.
Connettiti al driver con la classe
DriverManageroDataSource.Connettiti al corso
DriverManager:import java.sql.Connection; import java.sql.DriverManager; private static Connection getJdbcConnectionDM(){ Connection connection = DriverManager.getConnection(CONNECTION_STRING); return connection; }
Sostituisci
CONNECTION_STRINGcon la stringa di connessione del passaggio precedente.Connettiti al corso
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; }
Sostituisci
CONNECTION_STRINGcon la stringa di connessione del passaggio precedente.La classe
DataSourcedispone anche di metodi setter, che puoi utilizzare per impostare le proprietà di connessione, anziché includere ogni proprietà nella stringa di connessione. Di seguito è riportato un esempio: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(); }
Esplorare le funzionalità per il conducente
Ora che hai eseguito la connessione al driver JDBC per BigQuery, puoi esplorarne le funzionalità.
Connettore SQL
Il connettore SQL ti consente di eseguire query SQL con BigQuery. Utilizza la
QueryDialect proprietà di connessione per specificare il dialetto SQL
che vuoi utilizzare.
Mappatura dei tipi di dati
Il driver JDBC per BigQuery supporta i seguenti mapping dei tipi di dati:
| Tipo BigQuery | Tipo SQL | Tipo di 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 |
Record nidificati e ripetuti
Il driver JDBC per BigQuery supporta record nidificati e ripetuti, in cui il driver restituisce il tipo di base come oggetto struct o una rappresentazione di stringa di un oggetto JSON.
Di seguito è riportato un esempio di query sul record di base dei dati struct:
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());
Il risultato è il seguente:
{
"v": {
"f": [
{
"v": "Adam"
},
{
"v": "5"
}
]
}
}Di seguito è riportato un esempio di query sui sottocomponenti di un oggetto 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()); }
Di seguito è riportato un esempio di query di un array standard di dati ripetuti:
// 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]); }
Di seguito è riportato un esempio di query di un array struct di dati ripetuti:
// 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]); }
Set di risultati di grandi dimensioni
Per recuperare set di risultati di grandi dimensioni quando utilizzi il driver JDBC per BigQuery, procedi nel seguente modo:
- Se la proprietà di connessione
QueryDialectè impostata suSQL, specifica un set di dati e una tabella per archiviare i risultati con le proprietà di connessioneLargeResultDataseteLargeResultTable. - Se la proprietà di connessione
QueryDialectè impostata suBIG_QUERY, imposta la proprietà di connessioneAllowLargeResultssuTRUEe specifica un dataset e una tabella per archiviare i risultati con le proprietà di connessioneLargeResultDataseteLargeResultTable.
In entrambi i casi, puoi utilizzare la proprietà di connessione LargeResultsDatasetExpirationTime
per specificare la durata del ciclo di vita del set di dati di destinazione.
Se non specifichi i valori per le proprietà di connessione LargeResultDataset e LargeResultTable, il driver JDBC per BigQuery crea un set di dati nascosto denominato _google_jdbc e una tabella temporanea al suo interno.
Queste risorse vengono eliminate automaticamente dopo 24 ore.
Continuano a essere applicati tutti i limiti e le quote di BigQuery.
Parametri posizionali
I parametri posizionali sono segnaposto all'interno di un'istruzione SQL che rappresentano
i valori da fornire durante l'esecuzione della query. Il driver JDBC per
BigQuery supporta i parametri posizionali con il simbolo del punto interrogativo (?). Di seguito è riportato un esempio di query che utilizza un parametro
posizionale:
PreparedStatement preparedStatement = connection.prepareStatement( "SELECT * FROM MyTestTable where testColumn = ?"); preparedStatement.setString(1, "string2"); ResultSet resultSet = statement.executeQuery(selectQuery);
SELECT query
Puoi utilizzare il driver JDBC per BigQuery per eseguire query SELECT
tramite l'API BigQuery o l'API BigQuery Storage Read.
Se utilizzi l'API BigQuery, imposta la proprietà JobCreationMode connection
per specificare se la query viene eseguita con o senza la creazione di un job.
Se utilizzi l'API Storage Read, utilizza la proprietà di connessione EnableHighThroughputAPI per abilitare l'API e verificare che siano soddisfatte le seguenti condizioni:
- Lo schema non utilizza il tipo
INTERVAL. - Il numero totale di righe è inferiore al valore della proprietà di connessione
HighThroughputMinTableSize. - Il rapporto tra righe e dimensioni della pagina è inferiore al valore della proprietà di connessione
HighThroughputActivationRatio.
Inserimento collettivo
Per eseguire operazioni di inserimento collettivo con il driver JDBC per BigQuery, utilizza il metodo executeBatch.
Di seguito è riportata un'operazione di scrittura di esempio:
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();
Logging
Il driver JDBC per BigQuery supporta la registrazione delle azioni nel driver tramite Java Util Logging. La registrazione può influire sulle prestazioni, quindi attivala solo per acquisire un problema e disattivala al termine.
Per configurare la registrazione:
Imposta la proprietà
LogLevelin base alla tabella seguente:Valore LogLevelLogLevelDescrizione 0OFFNessun messaggio registrato. 1SEVEREErrori o guasti gravi che influiscono sulla funzionalità dell'applicazione. 2WARNINGPotenziali problemi o situazioni che potrebbero richiedere attenzione. 3INFOMessaggi informativi su eventi e progressi normali. 4CONFIGMessaggi relativi alle informazioni di configurazione statica. 5FINEMessaggi di tracciamento generali. 6FINERMessaggi di tracciamento dettagliati. 7FINESTMessaggi di tracciamento molto dettagliati, utili per il debug esteso. 8ALLTutti i messaggi vengono registrati. Imposta la proprietà
LogPathsul percorso completo della cartella in cui vuoi salvare il file di log.
In alternativa, puoi configurare la registrazione con le variabili di ambiente BIGQUERY_JDBC_LOG_LEVEL e BIGQUERY_JDBC_LOG_PATH.
Proprietà di connessione
In un driver JDBC, le proprietà di connessione sono parametri di configurazione che puoi includere nella stringa di connessione o passare attraverso i metodi setter quando stabilisci una connessione a un database. Le seguenti proprietà di connessione sono supportate dal driver JDBC per BigQuery.
AdditionalProjects
Questa proprietà di connessione consente alle query e alle operazioni sui metadati di accedere ai set di dati all'interno dei progetti specificati, oltre al progetto principale definito nella stringa di connessione.
- Valore predefinito: N/A
- Tipo di dati: stringa (stringa di ID progetto separati da virgole)
- Obbligatorio: no
AllowLargeResults
Questa proprietà di connessione specifica se il driver elabora i risultati della query
di dimensioni superiori a 128 MB quando la proprietà di connessione QueryDialect è
impostata su BIG_QUERY. Se la proprietà di connessione QueryDialect è impostata su SQL,
la proprietà di connessione AllowLargeResults è impostata su TRUE per impostazione predefinita. Per
maggiori informazioni, consulta Set di risultati di grandi dimensioni.
- Valore predefinito:
TRUE - Tipo di dati: booleano
- Obbligatorio: no
BYOID_AudienceUri
Questa proprietà di connessione specifica la proprietà segmento di pubblico in un file di configurazione dell'account esterno. La proprietà audience contiene il nome della risorsa per il pool di identità del workload o il pool di forza lavoro e l'identificatore del provider in quel pool.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: solo quando
OAuthType=4
BYOID_CredentialSource
Questa proprietà di connessione imposta le informazioni di recupero dei token e le informazioni ambientali.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: solo quando
OAuthType=4
BYOID_PoolUserProject
Questa proprietà di connessione imposta il progetto utente quando viene utilizzato il pool di forza lavoro. Il progetto deve disporre dell'autorizzazione IAM serviceusage.services.use.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: solo quando
OAuthType=4e si utilizza il pool forza lavoro
BYOID_SA_Impersonation_Uri
Questa proprietà di connessione imposta l'URL per la simulazione dell'identità del account di servizio quando vengono utilizzati i pool di identità del workload e le API non sono state integrate con UberMint.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: solo quando
OAuthType=4e si utilizza il pool di identità per i workload con la simulazione dell'identità delaccount di serviziot
BYOID_SubjectTokenType
Questa proprietà di connessione imposta il token STS in base alla specifica di scambio di token. Il valore deve essere uno dei seguenti:
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- Valore predefinito:
urn:ietf:params:oauth:tokentype:id_token - Tipo di dati: stringa
- Obbligatorio: solo quando
OAuthType=4
BYOID_TokenUri
Questa proprietà di connessione imposta l'endpoint di scambio di token STS.
- Valore predefinito:
https://sts.googleapis.com/v1/token - Tipo di dati: stringa
- Obbligatorio: no
ConnectionPoolSize
Questa proprietà di connessione imposta la dimensione del pool di connessioni se il pooling delle connessioni è abilitato.
- Valore predefinito:
10 - Tipo di dati: Long
- Obbligatorio: no
DefaultDataset
Questa proprietà di connessione specifica il set di dati utilizzato quando esegui una query
senza specificare esplicitamente un set di dati. Puoi utilizzare il formato
DATASET_ID o
PROJECT_ID.DATASET_ID.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
EnableHighThroughputAPI
Questa proprietà di connessione determina se l'API Storage Read può essere
utilizzata. Per utilizzare l'API Storage Read, devono essere soddisfatte anche le proprietà di connessione HighThroughputActivationRatio e HighThroughputMinTableSize.
- Valore predefinito:
FALSE - Tipo di dati: booleano
- Obbligatorio: no
EnableSession
Questa proprietà di connessione determina se la connessione avvia una sessione. Se utilizzato, l'ID sessione viene passato a tutte le query successive.
- Valore predefinito:
FALSE - Tipo di dati: booleano
- Obbligatorio: no
EnableWriteAPI
Questa proprietà di connessione determina se è possibile utilizzare l'API Storage Write. Deve essere impostato su TRUE per abilitare gli inserimenti collettivi.
- Valore predefinito:
FALSE - Tipo di dati: booleano
- Obbligatorio: no
EndpointOverrides
Questa proprietà di connessione imposta endpoint personalizzati in una stringa separata da virgole.
- Valori predefiniti:
BIGQUERY=https://bigquery.googleapis.comREAD_API=https://bigquerystorage.googleapis.comOAUTH2=https://oauth2.googleapis.comSTS=https://sts.googleapis.com
- Tipo di dati: stringa
- Obbligatorio: no
FilterTablesOnDefaultDataset
Questa proprietà di connessione controlla l'ambito dei metadati restituiti dai metodi
DatabaseMetaData.getTables() e DatabaseMetaData.getColumns().
Quando la proprietà è disattivata, non viene applicato alcun filtro. Per abilitare il filtro, deve essere impostata anche la proprietà di connessione DefaultDataset.
- Valore predefinito:
FALSE - Tipo di dati: booleano
- Obbligatorio: no
HighThroughputActivationRatio
Questa proprietà di connessione imposta una soglia per il numero di pagine in una risposta
a una query. Quando questo numero viene superato e le condizioni EnableHighThroughputAPI e
HighThroughputMinTableSize vengono soddisfatte, il driver inizia a utilizzare l'API
Storage Read.
- Valore predefinito:
2 - Tipo di dati: numero intero
- Obbligatorio: no
HighThroughputMinTableSize
Questa proprietà di connessione imposta una soglia per il numero di righe in una risposta alla query. Quando questo numero viene superato e le condizioni EnableHighThroughputAPI e
HighThroughputActivationRatio vengono soddisfatte, il driver inizia a utilizzare l'API
Storage Read.
- Valore predefinito:
100 - Tipo di dati: numero intero
- Obbligatorio: no
JobCreationMode
Questa proprietà di connessione determina se le query vengono eseguite senza creare job. Un valore
1 indica che vengono creati job per ogni query, mentre un valore 2 indica
che le query possono essere eseguite senza job.
- Valore predefinito:
2 - Tipo di dati: numero intero
- Obbligatorio: no
JobTimeout
Questa proprietà di connessione imposta il timeout del job (in secondi) dopo il quale il job viene annullato sul server.
- Valore predefinito:
0 - Tipo di dati: Long
- Obbligatorio: no
KMSKeyName
Questa proprietà di connessione imposta il nome della chiave KMS per la crittografia dei dati.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
Labels
Questa proprietà di connessione imposta le etichette associate alla query per organizzare e raggruppare i job di query.
- Valore predefinito: N/A
- Tipo di dati: Map<String, String>
- Obbligatorio: no
LargeResultDataset
Questa proprietà di connessione imposta il set di dati di destinazione per i risultati della query. Per maggiori informazioni, consulta Set di risultati di grandi dimensioni.
- Valore predefinito:
_google_jdbc, solo quandoQueryDialect=BIG_QUERYo quandoQueryDialect=SQLe la proprietà di connessioneLargeResultTableè impostata - Tipo di dati: stringa
- Obbligatorio: no
LargeResultsDatasetExpirationTime
Questa proprietà di connessione specifica la durata di tutte le tabelle in un set di dati, in millisecondi. Questa proprietà viene ignorata se il set di dati ha già impostato un tempo di scadenza predefinito.
- Valore predefinito:
3600000 - Tipo di dati: Long
- Obbligatorio: no
LargeResultTable
Questa proprietà di connessione imposta la tabella di destinazione per i risultati della query. Per maggiori informazioni, consulta Set di risultati di grandi dimensioni.
- Valore predefinito:
temp_table..., solo quandoQueryDialect=BIG_QUERYo quandoQueryDialect=SQLe la proprietà di connessioneLargeResultTableè impostata - Tipo di dati: stringa
- Obbligatorio: no
ListenerPoolSize
Questa proprietà di connessione imposta le dimensioni del pool di listener se il pool di connessioni è abilitato.
- Valore predefinito:
10 - Tipo di dati: Long
- Obbligatorio: no
Location
Questa proprietà di connessione specifica la posizione in cui vengono creati o interrogati i set di dati. BigQuery determina automaticamente la posizione se questo valore non è impostato.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
LogLevel
Questa proprietà di connessione controlla il livello di dettaglio registrato durante le interazioni con il database. Per le descrizioni dei livelli, vedi Logging.
- Valore predefinito:
0 - Tipo di dati: numero intero
- Obbligatorio: no
LogPath
Questa proprietà di connessione imposta la directory in cui vengono scritti i file di log. Per maggiori dettagli, consulta Logging.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
MaximumBytesBilled
Questa proprietà di connessione limita il numero di byte fatturati. Le query con byte fatturati superiori a questo limite hanno esito negativo senza addebiti.
- Valore predefinito:
0 - Tipo di dati: Long
- Obbligatorio: no
MaxResults
Questa proprietà di connessione imposta il numero massimo di risultati per pagina.
- Valore predefinito:
10000 - Tipo di dati: Long
- Obbligatorio: no
MetaDataFetchThreadCount
Questa proprietà di connessione configura il numero di thread utilizzati per i metodi dei metadati del database.
- Valore predefinito:
32 - Tipo di dati: numero intero
- Obbligatorio: no
OAuthAccessToken
Questa proprietà di connessione specifica il token di accesso utilizzato per l'autenticazione con token di accesso pregenerato.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: quando
AUTH_TYPE=2
OAuthClientId
Questa proprietà di connessione imposta l'ID client per l'autenticazione con token di aggiornamento pregenerato e l'autenticazione dell'account utente.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: quando
AUTH_TYPE=1oAUTH_TYPE=2
OAuthClientSecret
Questa proprietà di connessione imposta il client secret per l'autenticazione del token di aggiornamento pregenerato e l'autenticazione dell'account utente.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: quando
AUTH_TYPE=1oAUTH_TYPE=2
OAuthP12Password
Questa proprietà di connessione imposta la password per il file della chiave PKCS12.
- Valore predefinito:
notasecret - Tipo di dati: stringa
- Obbligatorio: no
OAuthPvtKey
Questa proprietà di connessione imposta la chiave del account di servizio quando si utilizza l'autenticazione delaccount di serviziot. Questo valore può essere un oggetto JSON keyfile non elaborato o un percorso del JSON keyfile.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: quando
AUTH_TYPE=0e il valoreOAuthPvtKeyPathnon sono impostati
OAuthPvtKeyPath
Questa proprietà di connessione imposta il percorso della chiave del account di servizio quando si utilizza l'autenticazione delaccount di serviziot.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: quando
AUTH_TYPE=0e i valoriOAuthPvtKeyeOAuthServiceAcctEmailnon sono impostati
OAuthRefreshToken
Questa proprietà di connessione imposta il token di aggiornamento per l'autenticazione del token di aggiornamento pregenerato. Un token di aggiornamento OAuth 2.0 è un tipo speciale di token che consente a un'applicazione di ottenere un nuovo token di accesso alla scadenza di quello attuale, senza richiedere all'utente di eseguire nuovamente l'autenticazione.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: quando
AUTH_TYPE=2
OAuthServiceAcctEmail
Questa proprietà di connessione imposta l'email del account di servizio quando si utilizza l'autenticazione del service account.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: quando
AUTH_TYPE=0e il valoreOAuthPvtKeyPathnon sono impostati
OAuthType
Questa proprietà di connessione specifica il tipo di autenticazione. Il valore deve essere uno dei seguenti:
0: Autenticazione del account di servizio Google1: autenticazione dell'account utente Google2: Autenticazione con token di aggiornamento o token di accesso pregenerato3: Autenticazione delle credenziali predefinite dell'applicazione4: metodi di autenticazione esterni, come la federazione delle identità della forza lavoro o la federazione delle identità per i workload- Valore predefinito:
-1 - Tipo di dati: numero intero
- Obbligatorio: sì
PartnerToken
Questa proprietà di connessione viene utilizzata dai partner Google Cloud per monitorare l'utilizzo del driver.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
PrivateServiceConnectUris
Questa proprietà di connessione è identica alla proprietà EndpointOverrides. Utilizza
invece la proprietà EndpointOverrides.
ProjectId
Questa proprietà di connessione imposta l'ID progetto predefinito per il driver. Questo progetto viene utilizzato per eseguire query e viene fatturato per l'utilizzo delle risorse. Se non è impostato, il driver deduce un ID progetto.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no, ma altamente consigliato
ProxyHost
Questa proprietà di connessione imposta il nome host o l'indirizzo IP di un server proxy tramite cui viene instradata la connessione JDBC.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
ProxyPort
Questa proprietà di connessione imposta il numero di porta su cui il server proxy è in attesa di connessioni.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
ProxyPwd
Questa proprietà di connessione imposta la password necessaria per l'autenticazione quando ci si connette tramite un server proxy che la richiede.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
ProxyUid
Questa proprietà di connessione imposta il nome utente necessario per l'autenticazione quando ci si connette tramite un server proxy che lo richiede.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
QueryDialect
Questa proprietà di connessione imposta il dialetto SQL per l'esecuzione delle query. Utilizza SQL
per GoogleSQL (opzione consigliata) e BIG_QUERY per SQL precedente.
- Valore predefinito:
SQL - Tipo di dati: stringa
- Obbligatorio: no
QueryProperties
Questa proprietà di connessione configura le modifiche al comportamento delle query.
Di seguito è riportato un esempio impostato nella stringa di connessione:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; QueryProperties=dataset_project_id=TestProjectID,time_zone=America/New_York;
Di seguito è riportato un esempio impostato nella 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);
Per maggiori dettagli, consulta ConnectionProperty.
- Valore predefinito: N/A
- Tipo di dati: Map<String, String>
- Obbligatorio: no
RequestGoogleDriveScope
Questa proprietà di connessione viene utilizzata per richiedere l'accesso a Google Drive. Se
attivato, all'account viene aggiunto l'ambito di sola lettura di Drive. Per
attivare questa proprietà, imposta il valore su 1.
- Valore predefinito:
0 - Tipo di dati: numero intero
- Obbligatorio: no
RetryInitialDelay
Questa proprietà di connessione imposta il ritardo (in secondi) prima del primo tentativo.
- Valore predefinito:
0 - Tipo di dati: Long
- Obbligatorio: no
RetryMaxDelay
Questa proprietà di connessione imposta il limite massimo (in secondi) per il ritardo dei nuovi tentativi.
- Valore predefinito:
0 - Tipo di dati: Long
- Obbligatorio: no
ServiceAccountImpersonationChain
Questa proprietà di connessione specifica un elenco separato da virgole di indirizzi email degli account di servizio nella catena di rappresentazione.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
ServiceAccountImpersonationEmail
Questa proprietà di connessione imposta l'email del account di servizio da rappresentare.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
ServiceAccountImpersonationScopes
Questa proprietà di connessione specifica un elenco separato da virgole di ambiti OAuth2 da utilizzare con l'account con identità simulata.
- Valore predefinito:
https://www.googleapis.com/auth/bigquery - Tipo di dati: stringa
- Obbligatorio: no
ServiceAccountImpersonationTokenLifetime
Questa proprietà di connessione imposta la durata del token dell'account rappresentato (in secondi).
- Valore predefinito:
3600 - Tipo di dati: numero intero
- Obbligatorio: no
SSLTrustStore
Questa proprietà di connessione specifica il percorso completo dell'archivio attendibilità Java che contiene i certificati dell'autorità di certificazione (CA) attendibili. Il driver utilizza questo truststore per convalidare l'identità del server durante l'handshake SSL/TLS.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: no
SSLTrustStorePwd
Questa proprietà di connessione specifica la password per il TrustStore Java specificato
nella proprietà SSLTrustStore.
- Valore predefinito: N/A
- Tipo di dati: stringa
- Obbligatorio: solo se utilizzi un archivio attendibile Java protetto da password
SWA_ActivationRowCount
Questa proprietà di connessione imposta un numero soglia di righe executeBatch insert
che, se superato, fa sì che il connettore passi all'API Storage Write.
- Valore predefinito:
3 - Tipo di dati: numero intero
- Obbligatorio: no
SWA_AppendRowCount
Questa proprietà di connessione imposta le dimensioni del flusso di scrittura.
- Valore predefinito:
1000 - Tipo di dati: numero intero
- Obbligatorio: no
Timeout
Questa proprietà di connessione imposta il periodo di tempo, in secondi, durante il quale il connettore ritenta una chiamata API non riuscita prima del timeout.
- Valore predefinito:
0 - Tipo di dati: Long
- Obbligatorio: no
UniverseDomain
Questa proprietà di connessione imposta il dominio dell'universo, il dominio di primo livello associato alle risorse della tua organizzazione. Google Cloud
- Valore predefinito:
googleapis.com - Tipo di dati: stringa
- Obbligatorio: no
UnsupportedHTAPIFallback
Questa proprietà di connessione determina se il connettore esegue il failover all'API REST
(se impostata su TRUE) o restituisce un errore (se impostata su FALSE).
- Valore predefinito:
TRUE - Tipo di dati: booleano
- Obbligatorio: no
UseQueryCache
Questa proprietà di connessione consente la memorizzazione nella cache delle query.
- Valore predefinito:
TRUE - Tipo di dati: booleano
- Obbligatorio: no