JDBC-Treiber für BigQuery verwenden
Der JDBC-Treiber (Java Database Connectivity) für BigQuery verbindet Ihre Java-Anwendung mit BigQuery. So können Sie BigQuery-Funktionen mit Ihren bevorzugten Tools und Ihrer bevorzugten Infrastruktur nutzen. Dieser Treiber wurde speziell für BigQuery entwickelt und kann nicht mit anderen Produkten oder Diensten verwendet werden. Für die Verwendung dieses Treibers sind keine zusätzlichen Lizenzen erforderlich.
Hinweise
- Machen Sie sich mit JDBC-Treibern und dem
java.sql-Paket vertraut. - Prüfen Sie, ob auf Ihrem System die Java-Laufzeitumgebung (JRE) 8.0 oder höher konfiguriert ist.
Treiber konfigurieren
Wenn Sie den JDBC-Treiber für BigQuery konfigurieren möchten, müssen Sie den Treiber installieren, sich bei BigQuery authentifizieren und eine Verbindung herstellen.
Treiber installieren
- Laden Sie eines der folgenden JDBC-Pakete herunter:
- Uber-JAR: Eine einzelne JAR-Datei mit allen Abhängigkeiten.
- Schlanke JAR-Datei mit Abhängigkeiten: Eine ZIP-Datei, die eine schlanke JAR-Datei mit allen Abhängigkeiten enthält.
- Shaded Uber JAR Eine einzelne JAR-Datei mit allen Abhängigkeiten, die zusätzlich verschleiert werden.
- Fügen Sie die heruntergeladene JAR-Datei Ihrem Klassenpfad hinzu, damit der Java-Compiler und die Laufzeitumgebung die erforderlichen JDBC-Klassen finden können.
Bei BigQuery authentifizieren
Der JDBC-Treiber für BigQuery bietet mehrere Authentifizierungsoptionen:
- Dienstkonto verwenden
- Google-Nutzerkonto verwenden
- Vorab generierte Zugriffs- und Aktualisierungstokens verwenden
- Standardanmeldedaten für Anwendungen verwenden
- Externe Methode verwenden
Mit einem Dienstkonto authentifizieren
Wenn Sie eine Verbindung mit dem JDBC-Treiber für BigQuery herstellen, gehen Sie so vor:
- Legen Sie die
OAuthType-Verbindungseigenschaft auf0fest. - Legen Sie die Verbindungseigenschaft
ProjectIdauf den Namen Ihres BigQuery-Projekts fest. - Führen Sie einen der folgenden Schritte aus:
- Wenn Sie eine E-Mail-Adresse und einen Schlüssel für ein Dienstkonto verwenden, legen Sie die Verbindungseigenschaft
OAuthServiceAcctEmailauf die E-Mail-Adresse Ihres Google-Dienstkontos und die VerbindungseigenschaftOAuthPvtKeyauf das JSON-Objekt des Dienstkontoschlüssels fest. FürOAuthPvtKeykönnen Sie entweder das JSON-Objekt des Schlüssels oder den vollständigen Pfad der Schlüsseldatei verwenden. - Wenn Sie eine Schlüsseldatei für das Dienstkonto verwenden, legen Sie das Verbindungsparameter
OAuthPvtKeyPathauf den vollständigen Pfad zur Schlüsseldatei des Dienstkontos fest.
- Wenn Sie eine E-Mail-Adresse und einen Schlüssel für ein Dienstkonto verwenden, legen Sie die Verbindungseigenschaft
In den folgenden zwei Beispielen wird die Dienstkonto-Authentifizierung verwendet:
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;
Mit einem Google-Nutzerkonto authentifizieren
Wenn Sie eine Verbindung mit dem JDBC-Treiber für BigQuery herstellen, gehen Sie so vor:
- Legen Sie die
OAuthType-Verbindungseigenschaft auf1fest. - Legen Sie die Verbindungseigenschaft
ProjectIdauf den Namen Ihres BigQuery-Projekts fest. - Legen Sie das Attribut
OAuthClientIdauf Ihre Client-ID und das AttributOAuthClientSecretauf Ihren Clientschlüssel fest.
Weitere Informationen finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen und OAuth-Clients verwalten.
Im folgenden Beispiel wird die Authentifizierung von Google-Nutzerkonten verwendet:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=1; OAuthClientId=123456789012-abcdefghijklmnopqrstuvwxyz12345.apps.googleusercontent.com; OAuthClientSecret=_aB-C1D_E2fGh3Ij4kL5m6No7p8QR9sT0uV;
Mit einem vorab generierten Zugriffs- oder Aktualisierungstoken authentifizieren
Wenn Sie eine Verbindung mit dem JDBC-Treiber für BigQuery herstellen, gehen Sie so vor:
- Legen Sie die
OAuthType-Verbindungseigenschaft auf2fest. - Legen Sie die Verbindungseigenschaft
ProjectIdauf den Namen Ihres BigQuery-Projekts fest. - Führen Sie einen der folgenden Schritte aus:
- Wenn Sie ein vorab generiertes Zugriffstoken verwenden, legen Sie die Verbindungseigenschaft
OAuthAccessTokenauf Ihr Zugriffstoken fest. - Wenn Sie ein vorab generiertes Aktualisierungstoken verwenden, legen Sie die Verbindungseigenschaft
OAuthRefreshTokenauf Ihr Aktualisierungstoken, die VerbindungseigenschaftOAuthClientIdauf Ihre Client-ID und die VerbindungseigenschaftOAuthClientSecretauf Ihr Client-Secret fest.
- Wenn Sie ein vorab generiertes Zugriffstoken verwenden, legen Sie die Verbindungseigenschaft
Weitere Informationen finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.
Im folgenden Beispiel wird die Authentifizierung mit einem vorab generierten Zugriffstoken verwendet:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=2; OAuthAccessToken=ya29.a0AfH6SMCiH1L-x_yZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_;
Im folgenden Beispiel wird die Authentifizierung mit einem vorab generierten Aktualisierungstoken verwendet:
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;
Mit Standardanmeldedaten für Anwendungen authentifizieren
Der Einsatz von Standardanmeldedaten für Anwendungen ist eine Strategie, die von den Authentifizierungsbibliotheken verwendet wird, um Anmeldedaten automatisch basierend auf der Anwendungsumgebung zu finden.
Wenn Sie eine Verbindung mit dem JDBC-Treiber für BigQuery herstellen, gehen Sie so vor:
- Legen Sie die
OAuthType-Verbindungseigenschaft auf3fest. - Legen Sie die Verbindungseigenschaft
ProjectIdauf den Namen Ihres BigQuery-Projekts fest.
Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen einrichten.
Im folgenden Beispiel wird die ADC-Authentifizierung verwendet:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=3;
Mit einer externen Methode authentifizieren
Sie können sich mit externen Methoden wie der Workforce Identity-Föderation oder der Workload Identity-Föderation authentifizieren.
Wenn Sie eine Verbindung mit dem JDBC-Treiber für BigQuery herstellen, gehen Sie so vor:
- Legen Sie die
OAuthType-Verbindungseigenschaft auf4fest. - Legen Sie die Verbindungseigenschaft
ProjectIdauf den Namen Ihres BigQuery-Projekts fest. - Führen Sie einen der folgenden Schritte aus:
- Legen Sie das Verbindungsattribut
OAuthPvtKeyoder das VerbindungsattributOAuthPvtKeyPathauf den vollständigen Pfad der Konfigurationsdatei fest. FürOAuthPvtKeykönnen Sie entweder das JSON-Objekt des Schlüssels oder den vollständigen Pfad der Schlüsseldatei verwenden. - Legen Sie das Verbindungsattribut
OAuthPvtKeyauf das rohe Konfigurationsobjekt des externen Kontos fest. - Legen Sie die folgenden
BYOID-Verbindungseigenschaften fest, die im Abschnitt Verbindungseigenschaften beschrieben werden:BYOID_AudienceUriBYOID_CredentialSourceBYOID_PoolUserProjectBYOID_SA_Impersonation_UriBYOID_SubjectTokenTypeBYOID_TokenUri
- Legen Sie das Verbindungsattribut
In den folgenden Beispielen werden externe Authentifizierungsmethoden verwendet:
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;"
Hier sehen Sie ein Beispiel für eine Konfigurationsdatei:
{ "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" }
Verbindung herstellen
So stellen Sie eine Verbindung mit dem JDBC-Treiber für BigQuery her:
Fügen Sie die
google-cloud-bigquery-jdbc-Abhängigkeit in Ihre Maven-POM-Datei oder Gradle-Build-Datei ein:<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>
Wenn Sie ein Gradle-Projekt verwenden, fügen Sie der Build-Datei Folgendes hinzu:
dependencies { // ... other dependencies implementation files('path/to/file/google-jdbc-jar-with-dependencies.jar') }
Ermitteln Sie den Verbindungs-String für den JDBC-Treiber. Dieser String enthält alle wichtigen Informationen, die zum Herstellen einer Verbindung zwischen Ihrer Java-Anwendung und einer bestimmten Datenbank erforderlich sind. Der JDBC-Treiber für den BigQuery-Verbindungsstring hat das folgende Format:
jdbc:bigquery://HOST:PORT;ProjectId=PROJECT_ID;OAuthType=AUTH_TYPE;PROPERTIES
Ersetzen Sie Folgendes:
HOST: Der DNS-Name oder die IP-Adresse des Servers.PORT: die TCP-Portnummer.PROJECT_ID: die ID Ihres BigQuery-Projekts.AUTH_TYPE: Eine Zahl, die den von Ihnen verwendeten Authentifizierungstyp angibt. Einer der folgenden:0: Authentifizierung mit Google-Dienstkonto1: Authentifizierung von Google-Nutzerkonten2: Vorab generiertes Aktualisierungstoken oder Authentifizierung mit Zugriffstoken3: Authentifizierung mit Standardanmeldedaten für Anwendungen4: Externe Authentifizierungsmethoden wie Workforce Identity-Föderation oder Workload Identity-Föderation
PROPERTIES: Zusätzliche Verbindungseigenschaften für den JDBC-Treiber. Eigenschaften müssen im Formatproperty_1=value_1; property_2=value_2;...aufgeführt werden. Bei Attributnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Eine vollständige Liste der Verbindungseigenschaften finden Sie unter Verbindungseigenschaften.
Stellen Sie mit der Klasse
DriverManageroderDataSourceeine Verbindung zum Treiber her.Stellen Sie eine Verbindung zur Klasse
DriverManagerher:import java.sql.Connection; import java.sql.DriverManager; private static Connection getJdbcConnectionDM(){ Connection connection = DriverManager.getConnection(CONNECTION_STRING); return connection; }
Ersetzen Sie
CONNECTION_STRINGdurch den Verbindungsstring aus dem vorherigen Schritt.Stellen Sie eine Verbindung zur Klasse
DataSourceher: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; }
Ersetzen Sie
CONNECTION_STRINGdurch den Verbindungsstring aus dem vorherigen Schritt.Die Klasse
DataSourcehat auch Setter-Methoden, mit denen Sie Verbindungseigenschaften festlegen können, anstatt jede Eigenschaft in den Verbindungsstring aufzunehmen. Hier ein Beispiel: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(); }
Fahrerfunktionen kennenlernen
Nachdem Sie eine Verbindung zum JDBC-Treiber für BigQuery hergestellt haben, können Sie die Funktionen nutzen.
SQL-Connector
Mit dem SQL-Connector können Sie SQL-Abfragen mit BigQuery ausführen. Verwenden Sie die Verbindungseigenschaft QueryDialect, um den SQL-Dialekt anzugeben, den Sie verwenden möchten.
Datentypzuordnung
Der JDBC-Treiber für BigQuery unterstützt die folgenden Datentypzuordnungen:
| BigQuery-Typ | SQL-Typ | Java-Typ |
|---|---|---|
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 |
Verschachtelte und wiederkehrende Datensätze
Der JDBC-Treiber für BigQuery unterstützt verschachtelte und wiederholte Datensätze. Dabei gibt der Treiber den Basistyp als Struktur- oder Stringobjekt zurück, das ein JSON-Objekt darstellt.
Im Folgenden sehen Sie ein Beispiel für das Abfragen des Basisdatensatzes von Strukturdaten:
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());
Das Ergebnis lautet:
{
"v": {
"f": [
{
"v": "Adam"
},
{
"v": "5"
}
]
}
}Das folgende Beispiel zeigt, wie Sie Unterkomponenten eines Struktur-Objekts abfragen:
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()); }
Im Folgenden finden Sie ein Beispiel für das Abfragen eines Standardarrays mit wiederholten Daten:
// 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]); }
Im Folgenden sehen Sie ein Beispiel für das Abfragen eines Struct-Arrays mit wiederholten Daten:
// 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]); }
Große Ergebnismenge
So rufen Sie große Ergebnismengen ab, wenn Sie den JDBC-Treiber für BigQuery verwenden:
- Wenn die Verbindungseigenschaft
QueryDialectaufSQLfestgelegt ist, geben Sie mit den VerbindungseigenschaftenLargeResultDatasetundLargeResultTableein Dataset und eine Tabelle an, in denen die Ergebnisse gespeichert werden sollen. - Wenn die
QueryDialect-Verbindungseigenschaft aufBIG_QUERYfestgelegt ist, setzen Sie dieAllowLargeResults-Verbindungseigenschaft aufTRUEund geben Sie mit den VerbindungseigenschaftenLargeResultDatasetundLargeResultTableein Dataset und eine Tabelle an, in denen die Ergebnisse gespeichert werden sollen.
In beiden Fällen können Sie mit der Verbindungseigenschaft LargeResultsDatasetExpirationTime die Lebensdauer des Zieldatasets angeben.
Wenn Sie keine Werte für die Verbindungseigenschaften LargeResultDataset und LargeResultTable angeben, erstellt der JDBC-Treiber für BigQuery ein ausgeblendetes Dataset mit dem Namen _google_jdbc und eine temporäre Tabelle darin.
Diese Ressourcen werden nach 24 Stunden automatisch gelöscht.
Es gelten weiterhin alle BigQuery-Kontingente und -Limits.
Positionsparameter
Positionsparameter sind Platzhalter in einer SQL-Anweisung, die Werte darstellen, die während der Ausführung der Abfrage angegeben werden müssen. Der JDBC-Treiber für BigQuery unterstützt Positionsparameter mit dem Fragezeichen (?). Im Folgenden sehen Sie ein Beispiel für eine Abfrage, in der ein Positionsparameter verwendet wird:
PreparedStatement preparedStatement = connection.prepareStatement( "SELECT * FROM MyTestTable where testColumn = ?"); preparedStatement.setString(1, "string2"); ResultSet resultSet = statement.executeQuery(selectQuery);
SELECT Abfragen
Mit dem JDBC-Treiber für BigQuery können Sie SELECT-Abfragen über die BigQuery API oder die BigQuery Storage Read API ausführen.
Wenn Sie die BigQuery API verwenden, legen Sie die Verbindungseigenschaft JobCreationMode fest, um anzugeben, ob die Abfrage mit oder ohne Erstellung eines Jobs ausgeführt wird.
Wenn Sie die Storage Read API verwenden, aktivieren Sie die API mit der Verbindungseigenschaft EnableHighThroughputAPI und prüfen Sie, ob die folgenden Bedingungen erfüllt sind:
- Im Schema wird der Typ
INTERVALnicht verwendet. - Die Gesamtzahl der Zeilen ist kleiner als der Wert der Verbindungseigenschaft
HighThroughputMinTableSize. - Das Verhältnis von Zeilen zu Seitengröße ist kleiner als der Wert der Verbindungseigenschaft
HighThroughputActivationRatio.
Bulk-Insert
Wenn Sie Bulk-Insert-Vorgänge mit dem JDBC-Treiber für BigQuery ausführen möchten, verwenden Sie die Methode executeBatch.
Hier ein Beispiel für einen Schreibvorgang:
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
Der JDBC-Treiber für BigQuery unterstützt die Protokollierung von Aktionen im Treiber über Java Util Logging. Das Logging kann sich auf die Leistung auswirken. Aktivieren Sie es daher nur, um ein Problem zu erfassen, und deaktivieren Sie es wieder, wenn Sie fertig sind.
So konfigurieren Sie das Logging:
Legen Sie das Attribut
LogLevelgemäß der folgenden Tabelle fest:LogLevel-WertLogLevelBeschreibung 0OFFEs werden keine Nachrichten protokolliert. 1SEVERESchwerwiegende Fehler, die sich auf die Anwendungsfunktionen auswirken. 2WARNINGMögliche Probleme oder Situationen, die Aufmerksamkeit erfordern. 3INFOInformationsmeldungen zu normalen Ereignissen und zum Fortschritt. 4CONFIGMeldungen zu statischen Konfigurationsinformationen. 5FINEAllgemeine Tracing-Meldungen. 6FINERDetaillierte Tracing-Meldungen. 7FINESTSehr detaillierte Tracing-Meldungen, die für umfangreiches Debugging nützlich sind. 8ALLAlle Nachrichten werden protokolliert. Legen Sie die Eigenschaft
LogPathauf den vollständigen Pfad des Ordners fest, in dem Sie die Logdatei speichern möchten.
Alternativ können Sie die Protokollierung mit den Umgebungsvariablen BIGQUERY_JDBC_LOG_LEVEL und BIGQUERY_JDBC_LOG_PATH konfigurieren.
Verbindungsattribute
In einem JDBC-Treiber sind Verbindungseigenschaften Konfigurationsparameter, die Sie in den Verbindungsstring aufnehmen oder über die Setter-Methoden übergeben können, wenn Sie eine Verbindung zu einer Datenbank herstellen. Die folgenden Verbindungseigenschaften werden vom JDBC-Treiber für BigQuery unterstützt.
AdditionalProjects
Mit dieser Verbindungseigenschaft können über Abfragen und Metadatenvorgänge auf Datasets in angegebenen Projekten zugegriffen werden. Das gilt zusätzlich zum primären Projekt, das im Verbindungsstring definiert ist.
- Standardwert: N/A
- Datentyp: String (kommagetrennter String mit Projekt-IDs)
- Erforderlich: Nein
AllowLargeResults
Mit dieser Verbindungseigenschaft wird angegeben, ob der Treiber Abfrageergebnisse verarbeitet, die größer als 128 MB sind, wenn die Verbindungseigenschaft QueryDialect auf BIG_QUERY gesetzt ist. Wenn die Verbindungseigenschaft QueryDialect auf SQL festgelegt ist, wird die Verbindungseigenschaft AllowLargeResults standardmäßig auf TRUE festgelegt. Weitere Informationen finden Sie unter Große Ergebnismenge.
- Standardwert:
TRUE - Datentyp: Boolesch
- Erforderlich: Nein
BYOID_AudienceUri
Mit diesem Verbindungsparameter wird das Zielgruppenattribut in einer Konfigurationsdatei für ein externes Konto angegeben. Die Eigenschaft „audience“ enthält den Ressourcennamen für den Workload Identity-Pool oder den Personalpool und die Anbieter-ID in diesem Pool.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nur wenn
OAuthType=4
BYOID_CredentialSource
Mit dieser Verbindungseigenschaft werden Informationen zum Abrufen von Tokens und Umgebungsinformationen festgelegt.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nur wenn
OAuthType=4
BYOID_PoolUserProject
Mit dieser Verbindungseigenschaft wird das Nutzerprojekt festgelegt, wenn der Personalpool verwendet wird. Das Projekt muss die IAM-Berechtigung serviceusage.services.use haben.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nur bei
OAuthType=4und Verwendung des Mitarbeiterpools
BYOID_SA_Impersonation_Uri
Mit dieser Verbindungseigenschaft wird die URL für die Identitätsübernahme des Dienstkontos festgelegt, wenn Arbeitslastidentitätspools verwendet werden und APIs nicht in UberMint integriert wurden.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nur bei
OAuthType=4und Verwendung des Workload Identity-Pools mit Identitätsübernahme des Dienstkontos
BYOID_SubjectTokenType
Mit diesem Verbindungsattribut wird das STS-Token basierend auf der Token-Austauschspezifikation festgelegt. Der Wert muss einer der folgenden sein:
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- Standardwert:
urn:ietf:params:oauth:tokentype:id_token - Datentyp: String
- Erforderlich: Nur wenn
OAuthType=4
BYOID_TokenUri
Mit dieser Verbindungseigenschaft wird der STS-Token-Austauschendpunkt festgelegt.
- Standardwert:
https://sts.googleapis.com/v1/token - Datentyp: String
- Erforderlich: Nein
ConnectionPoolSize
Mit dieser Verbindungseigenschaft wird die Größe des Verbindungspools festgelegt, wenn das Verbindungs-Pooling aktiviert ist.
- Standardwert:
10 - Datentyp: Long
- Erforderlich: Nein
DefaultDataset
Mit dieser Verbindungseigenschaft wird das Dataset angegeben, das verwendet wird, wenn Sie eine Abfrage ausführen, ohne ein Dataset explizit anzugeben. Sie können entweder das Format DATASET_ID oder PROJECT_ID.DATASET_ID verwenden.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
EnableHighThroughputAPI
Mit dieser Verbindungseigenschaft wird festgelegt, ob die Storage Read API verwendet werden kann. Die Verbindungseigenschaften HighThroughputActivationRatio und HighThroughputMinTableSize müssen ebenfalls erfüllt sein, damit die Storage Read API verwendet werden kann.
- Standardwert:
FALSE - Datentyp: Boolesch
- Erforderlich: Nein
EnableSession
Mit dieser Verbindungseigenschaft wird festgelegt, ob mit der Verbindung eine Sitzung gestartet wird. Wenn sie verwendet wird, wird die Sitzungs-ID an alle nachfolgenden Anfragen übergeben.
- Standardwert:
FALSE - Datentyp: Boolesch
- Erforderlich: Nein
EnableWriteAPI
Diese Verbindungseigenschaft bestimmt, ob die Storage Write API verwendet werden kann. Er muss auf TRUE gesetzt sein, um das Einfügen mehrerer Datensätze zu ermöglichen.
- Standardwert:
FALSE - Datentyp: Boolesch
- Erforderlich: Nein
EndpointOverrides
Mit diesem Verbindungsparameter werden benutzerdefinierte Endpunkte in einem durch Kommas getrennten String festgelegt.
- Standardwerte:
BIGQUERY=https://bigquery.googleapis.comREAD_API=https://bigquerystorage.googleapis.comOAUTH2=https://oauth2.googleapis.comSTS=https://sts.googleapis.com
- Datentyp: String
- Erforderlich: Nein
FilterTablesOnDefaultDataset
Mit dieser Verbindungseigenschaft wird der Umfang der Metadaten gesteuert, die von den Methoden DatabaseMetaData.getTables() und DatabaseMetaData.getColumns() zurückgegeben werden.
Wenn die Property deaktiviert ist, findet keine Filterung statt. Die Verbindungseigenschaft DefaultDataset muss ebenfalls festgelegt werden, damit die Filterung möglich ist.
- Standardwert:
FALSE - Datentyp: Boolesch
- Erforderlich: Nein
HighThroughputActivationRatio
Mit dieser Verbindungseigenschaft wird ein Grenzwert für die Anzahl der Seiten in einer Antwort auf eine Anfrage festgelegt. Wenn diese Zahl überschritten wird und die Bedingungen EnableHighThroughputAPI und HighThroughputMinTableSize erfüllt sind, verwendet der Treiber die Storage Read API.
- Standardwert:
2 - Datentyp: Ganzzahl
- Erforderlich: Nein
HighThroughputMinTableSize
Mit dieser Verbindungseigenschaft wird ein Grenzwert für die Anzahl der Zeilen in einer Antwort auf eine Abfrage festgelegt. Wenn diese Zahl überschritten wird und die Bedingungen EnableHighThroughputAPI und HighThroughputActivationRatio erfüllt sind, verwendet der Treiber die Storage Read API.
- Standardwert:
100 - Datentyp: Ganzzahl
- Erforderlich: Nein
JobCreationMode
Mit dieser Verbindungseigenschaft wird festgelegt, ob Abfragen ohne Erstellung von Jobs ausgeführt werden. Ein Wert von 1 bedeutet, dass für jede Abfrage Jobs erstellt werden, und ein Wert von 2 bedeutet, dass Abfragen ohne Jobs ausgeführt werden können.
- Standardwert:
2 - Datentyp: Ganzzahl
- Erforderlich: Nein
JobTimeout
Mit dieser Verbindungseigenschaft wird das Zeitlimit für den Job (in Sekunden) festgelegt, nach dem der Job auf dem Server abgebrochen wird.
- Standardwert:
0 - Datentyp: Long
- Erforderlich: Nein
KMSKeyName
Mit dieser Verbindungseigenschaft wird der KMS-Schlüsselname für die Verschlüsselung von Daten festgelegt.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
Labels
Mit dieser Verbindungseigenschaft werden Labels festgelegt, die mit der Abfrage verknüpft sind, um Abfragejobs zu organisieren und zu gruppieren.
- Standardwert: N/A
- Datentyp: Map<String, String>
- Erforderlich: Nein
LargeResultDataset
Mit dieser Verbindungseigenschaft wird das Ziel-Dataset für Abfrageergebnisse festgelegt. Weitere Informationen finden Sie unter Große Ergebnismenge.
- Standardwert:
_google_jdbc, nur wennQueryDialect=BIG_QUERYoder wennQueryDialect=SQLund die VerbindungseigenschaftLargeResultTablefestgelegt ist - Datentyp: String
- Erforderlich: Nein
LargeResultsDatasetExpirationTime
Mit dieser Verbindungseigenschaft wird die Lebensdauer aller Tabellen in einem Dataset in Millisekunden angegeben. Diese Property wird ignoriert, wenn für das Dataset bereits eine Standardablaufzeit festgelegt ist.
- Standardwert:
3600000 - Datentyp: Long
- Erforderlich: Nein
LargeResultTable
Mit dieser Verbindungseigenschaft wird die Zieltabelle für Abfrageergebnisse festgelegt. Weitere Informationen finden Sie unter Große Ergebnismenge.
- Standardwert:
temp_table..., nur wennQueryDialect=BIG_QUERYoder wennQueryDialect=SQLund die VerbindungseigenschaftLargeResultTablefestgelegt ist - Datentyp: String
- Erforderlich: Nein
ListenerPoolSize
Mit dieser Verbindungseigenschaft wird die Größe des Listener-Pools festgelegt, wenn das Verbindungs-Pooling aktiviert ist.
- Standardwert:
10 - Datentyp: Long
- Erforderlich: Nein
Location
Mit dieser Verbindungseigenschaft wird der Speicherort angegeben, an dem Datasets erstellt oder abgefragt werden. BigQuery ermittelt den Standort automatisch, wenn dieser Wert nicht festgelegt ist.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
LogLevel
Diese Verbindungseigenschaft steuert den Detaillierungsgrad, der bei Datenbankinteraktionen protokolliert wird. Beschreibungen der einzelnen Ebenen finden Sie unter Logging.
- Standardwert:
0 - Datentyp: Ganzzahl
- Erforderlich: Nein
LogPath
Mit dieser Verbindungseigenschaft wird das Verzeichnis festgelegt, in das Logdateien geschrieben werden. Weitere Informationen finden Sie unter Logging.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
MaximumBytesBilled
Mit dieser Verbindungseigenschaft wird die Anzahl der abgerechneten Byte begrenzt. Bei Abfragen, bei denen die abgerechneten Bytes dieses Limit überschreiten, schlägt die Abfrage fehl, ohne dass eine Gebühr anfällt.
- Standardwert:
0 - Datentyp: Long
- Erforderlich: Nein
MaxResults
Mit dieser Verbindungseigenschaft wird die maximale Anzahl von Ergebnissen pro Seite festgelegt.
- Standardwert:
10000 - Datentyp: Long
- Erforderlich: Nein
MetaDataFetchThreadCount
Mit dieser Verbindungseigenschaft wird die Anzahl der Threads konfiguriert, die für Datenbankmetadatenmethoden verwendet werden.
- Standardwert:
32 - Datentyp: Ganzzahl
- Erforderlich: Nein
OAuthAccessToken
Mit dieser Verbindungseigenschaft wird das Zugriffstoken angegeben, das für die Authentifizierung mit einem vorab generierten Zugriffstoken verwendet wird.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Wenn
AUTH_TYPE=2
OAuthClientId
Mit dieser Verbindungseigenschaft wird die Client-ID für die Authentifizierung mit vorab generierten Aktualisierungstokens und die Authentifizierung von Nutzerkonten festgelegt.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Wenn
AUTH_TYPE=1oderAUTH_TYPE=2
OAuthClientSecret
Mit dieser Verbindungseigenschaft wird das Clientgeheimnis für die Authentifizierung mit vorab generierten Aktualisierungstokens und die Authentifizierung von Nutzerkonten festgelegt.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Wenn
AUTH_TYPE=1oderAUTH_TYPE=2
OAuthP12Password
Mit diesem Verbindungsattribut wird das Passwort für die PKCS12-Schlüsseldatei festgelegt.
- Standardwert:
notasecret - Datentyp: String
- Erforderlich: Nein
OAuthPvtKey
Mit dieser Verbindungseigenschaft wird der Dienstkontoschlüssel festgelegt, wenn die Dienstkontoauthentifizierung verwendet wird. Dieser Wert kann ein rohes JSON-Schlüsseldatei-Objekt oder ein Pfad zur JSON-Schlüsseldatei sein.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Wenn
AUTH_TYPE=0und der WertOAuthPvtKeyPathnicht festgelegt sind
OAuthPvtKeyPath
Mit dieser Verbindungseigenschaft wird der Pfad zum Dienstkontoschlüssel festgelegt, wenn die Dienstkontoauthentifizierung verwendet wird.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Wenn
AUTH_TYPE=0und die WerteOAuthPvtKeyundOAuthServiceAcctEmailnicht festgelegt sind
OAuthRefreshToken
Mit dieser Verbindungseigenschaft wird das Aktualisierungstoken für die Authentifizierung mit einem vorab generierten Aktualisierungstoken festgelegt. Ein OAuth 2.0-Aktualisierungstoken ist ein spezielles Token, mit dem eine Anwendung ein neues Zugriffstoken abrufen kann, wenn das aktuelle abläuft, ohne dass der Nutzer sich neu authentifizieren muss.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Wenn
AUTH_TYPE=2
OAuthServiceAcctEmail
Mit dieser Verbindungseigenschaft wird die E-Mail-Adresse des Dienstkontos festgelegt, wenn die Dienstkonto-Authentifizierung verwendet wird.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Wenn
AUTH_TYPE=0und der WertOAuthPvtKeyPathnicht festgelegt sind
OAuthType
Mit dieser Verbindungseigenschaft wird der Authentifizierungstyp angegeben. Der Wert muss einer der folgenden sein:
0: Authentifizierung mit Google-Dienstkonto1: Authentifizierung von Google-Nutzerkonten2: Vorab generiertes Aktualisierungstoken oder Authentifizierung mit Zugriffstoken3: Authentifizierung mit Standardanmeldedaten für Anwendungen4: Externe Authentifizierungsmethoden wie die Mitarbeiteridentitätsföderation oder die Identitätsföderation von Arbeitslasten- Standardwert:
-1 - Datentyp: Ganzzahl
- Erforderlich: Ja
PartnerToken
Diese Verbindungseigenschaft wird von Google Cloud -Partnern verwendet, um die Nutzung des Treibers zu erfassen.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
PrivateServiceConnectUris
Dieses Verbindungsparameter entspricht dem Parameter EndpointOverrides. Verwenden Sie stattdessen die Property EndpointOverrides.
ProjectId
Mit dieser Verbindungseigenschaft wird die Standardprojekt-ID für den Treiber festgelegt. Dieses Projekt wird zum Ausführen von Abfragen verwendet und die Ressourcennutzung wird in Rechnung gestellt. Wenn sie nicht festgelegt ist, leitet der Treiber eine Projekt-ID ab.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein, aber dringend empfohlen
ProxyHost
Mit dieser Verbindungseigenschaft wird der Hostname oder die IP-Adresse eines Proxyservers festgelegt, über den die JDBC-Verbindung weitergeleitet wird.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
ProxyPort
Mit dieser Verbindungseigenschaft wird die Portnummer festgelegt, an der der Proxyserver auf Verbindungen wartet.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
ProxyPwd
Mit dieser Verbindungseigenschaft wird das Passwort festgelegt, das für die Authentifizierung erforderlich ist, wenn eine Verbindung über einen Proxyserver hergestellt wird, der dies erfordert.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
ProxyUid
Mit dieser Verbindungseigenschaft wird der Nutzername festgelegt, der für die Authentifizierung erforderlich ist, wenn eine Verbindung über einen Proxyserver hergestellt wird, der dies erfordert.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
QueryDialect
Mit dieser Verbindungseigenschaft wird der SQL-Dialekt für die Ausführung von Abfragen festgelegt. Verwenden Sie SQL für GoogleSQL (sehr empfehlenswert) und BIG_QUERY für Legacy-SQL.
- Standardwert:
SQL - Datentyp: String
- Erforderlich: Nein
QueryProperties
Mit dieser Verbindungseigenschaft werden Änderungen am Abfrageverhalten konfiguriert.
Hier ist ein Beispiel, das im Verbindungsstring festgelegt ist:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; QueryProperties=dataset_project_id=TestProjectID,time_zone=America/New_York;
Hier sehen Sie ein Beispiel, das in der Klasse DataSource festgelegt ist:
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);
Weitere Informationen finden Sie unter ConnectionProperty.
- Standardwert: N/A
- Datentyp: Map<String, String>
- Erforderlich: Nein
RequestGoogleDriveScope
Diese Verbindungseigenschaft wird verwendet, um Zugriff auf Google Drive anzufordern. Wenn diese Option aktiviert ist, wird der Verbindung der schreibgeschützte Drive-Bereich hinzugefügt. Wenn Sie dieses Attribut aktivieren möchten, legen Sie den Wert auf 1 fest.
- Standardwert:
0 - Datentyp: Ganzzahl
- Erforderlich: Nein
RetryInitialDelay
Mit dieser Verbindungseigenschaft wird die Verzögerung (in Sekunden) vor dem ersten Wiederholungsversuch festgelegt.
- Standardwert:
0 - Datentyp: Long
- Erforderlich: Nein
RetryMaxDelay
Mit dieser Verbindungseigenschaft wird das maximale Limit (in Sekunden) für die Verzögerung bei Wiederholungsversuchen festgelegt.
- Standardwert:
0 - Datentyp: Long
- Erforderlich: Nein
ServiceAccountImpersonationChain
Mit dieser Verbindungseigenschaft wird eine durch Kommas getrennte Liste von E-Mail-Adressen von Dienstkonten in der Identitätsübernahmekette angegeben.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
ServiceAccountImpersonationEmail
Mit dieser Verbindungseigenschaft wird die E-Mail-Adresse des Dienstkontos festgelegt, dessen Identität angenommen werden soll.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
ServiceAccountImpersonationScopes
Mit dieser Verbindungseigenschaft wird eine durch Kommas getrennte Liste von OAuth2-Bereichen angegeben, die mit dem imitierten Konto verwendet werden sollen.
- Standardwert:
https://www.googleapis.com/auth/bigquery - Datentyp: String
- Erforderlich: Nein
ServiceAccountImpersonationTokenLifetime
Mit dieser Verbindungseigenschaft wird die Lebensdauer des Tokens für das imitierten Konto in Sekunden festgelegt.
- Standardwert:
3600 - Datentyp: Ganzzahl
- Erforderlich: Nein
SSLTrustStore
Diese Verbindungseigenschaft gibt den vollständigen Pfad zum Java TrustStore an, der vertrauenswürdige Zertifizierungsstellenzertifikate enthält. Der Treiber verwendet diesen Truststore, um die Identität des Servers während des SSL/TLS-Handshakes zu validieren.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nein
SSLTrustStorePwd
Mit dieser Verbindungseigenschaft wird das Passwort für den Java-TrustStore angegeben, der in der Eigenschaft SSLTrustStore angegeben ist.
- Standardwert: N/A
- Datentyp: String
- Erforderlich: Nur bei Verwendung eines passwortgeschützten Java TrustStore
SWA_ActivationRowCount
Mit dieser Verbindungseigenschaft wird ein Schwellenwert für die Anzahl der executeBatch insert Zeilen festgelegt. Wenn dieser überschritten wird, wechselt der Connector zur Storage Write API.
- Standardwert:
3 - Datentyp: Ganzzahl
- Erforderlich: Nein
SWA_AppendRowCount
Mit dieser Verbindungseigenschaft wird die Größe des Schreibstreams festgelegt.
- Standardwert:
1000 - Datentyp: Ganzzahl
- Erforderlich: Nein
Timeout
Mit dieser Verbindungseigenschaft wird die Zeit in Sekunden festgelegt, die der Connector einen fehlgeschlagenen API-Aufruf wiederholt, bevor eine Zeitüberschreitung auftritt.
- Standardwert:
0 - Datentyp: Long
- Erforderlich: Nein
UniverseDomain
Mit dieser Verbindungseigenschaft wird die Universe-Domain festgelegt, die Top-Level-Domain, die den Google Cloud Ressourcen Ihrer Organisation zugeordnet ist.
- Standardwert:
googleapis.com - Datentyp: String
- Erforderlich: Nein
UnsupportedHTAPIFallback
Mit dieser Verbindungseigenschaft wird festgelegt, ob der Connector auf die REST API zurückgreift (wenn sie auf TRUE festgelegt ist) oder einen Fehler zurückgibt (wenn sie auf FALSE festgelegt ist).
- Standardwert:
TRUE - Datentyp: Boolesch
- Erforderlich: Nein
UseQueryCache
Mit dieser Verbindungseigenschaft wird das Zwischenspeichern von Abfragen aktiviert.
- Standardwert:
TRUE - Datentyp: Boolesch
- Erforderlich: Nein