Use o controlador JDBC para o BigQuery
O controlador Java Database Connectivity (JDBC) para o BigQuery associa a sua aplicação Java ao BigQuery, o que lhe permite usar as funcionalidades do BigQuery com as ferramentas e a infraestrutura da sua preferência. Este controlador foi concebido especificamente para o BigQuery e não pode ser usado com outros produtos ou serviços. Não precisa de licenças adicionais para usar este controlador.
Antes de começar
- Certifique-se de que está familiarizado com os controladores JDBC e o pacote
java.sql. - Verifique se o seu sistema está configurado com o Java Runtime Environment (JRE) 8.0 ou posterior.
Configure o controlador
Para configurar o controlador JDBC para o BigQuery, tem de instalar o controlador, autenticar-se no BigQuery e estabelecer uma ligação.
Instale o controlador
- Transfira um dos seguintes pacotes JDBC:
- Uber JAR. Um único ficheiro JAR com todas as dependências incluídas.
- JAR simples com dependências. Um ficheiro ZIP que inclui um ficheiro JAR simples com todas as dependências.
- JAR Uber sombreado. Um único ficheiro JAR com todas as dependências incluídas e, adicionalmente, sombreadas.
- Adicione o ficheiro JAR transferido ao seu classpath para que o compilador Java e o tempo de execução possam localizar as classes JDBC necessárias.
Autentique-se no BigQuery
O controlador JDBC para o BigQuery oferece várias opções de autenticação:
- Usar uma conta de serviço
- Usar uma conta de utilizador Google
- Usar uma chave de acesso e um símbolo de atualização pré-gerados
- Usar Credenciais padrão da aplicação
- Usar um método externo
Autentique com uma conta de serviço
Quando estabelece uma ligação com o controlador JDBC para o BigQuery, faça o seguinte:
- Defina a
OAuthTypepropriedade de associação como0. - Defina a propriedade de ligação
ProjectIdpara o nome do seu projeto do BigQuery. - Realize um dos seguintes passos:
- Se estiver a usar um email e uma chave de conta de serviço, defina a propriedade de ligação
OAuthServiceAcctEmailpara o endereço de email da sua conta de serviço Google e defina a propriedade de ligaçãoOAuthPvtKeypara o objeto JSON da chave de conta de serviço. ParaOAuthPvtKey, pode usar o objeto JSON da chave ou o caminho completo do ficheiro de chave. - Se estiver a usar um ficheiro de chave de conta de serviço, defina a propriedade de ligação
OAuthPvtKeyPathpara o caminho completo do ficheiro de chave da conta de serviço.
- Se estiver a usar um email e uma chave de conta de serviço, defina a propriedade de ligação
Os dois exemplos seguintes usam a autenticação da conta de serviço:
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;
Autentique com uma conta de utilizador Google
Quando estabelece uma ligação com o controlador JDBC para o BigQuery, faça o seguinte:
- Defina a
OAuthTypepropriedade de associação como1. - Defina a propriedade de ligação
ProjectIdpara o nome do seu projeto do BigQuery. - Defina a propriedade de ligação
OAuthClientIdpara o seu ID de cliente e defina a propriedade de ligaçãoOAuthClientSecretpara o seu segredo do cliente.
Para mais informações, consulte os artigos Utilizar o OAuth 2.0 para aceder às APIs Google e Gerir clientes OAuth.
O exemplo seguinte usa a autenticação da conta de utilizador Google:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=1; OAuthClientId=123456789012-abcdefghijklmnopqrstuvwxyz12345.apps.googleusercontent.com; OAuthClientSecret=_aB-C1D_E2fGh3Ij4kL5m6No7p8QR9sT0uV;
Autentique com uma chave de acesso ou de atualização pré-gerada
Quando estabelece uma ligação com o controlador JDBC para o BigQuery, faça o seguinte:
- Defina a
OAuthTypepropriedade de associação como2. - Defina a propriedade de ligação
ProjectIdpara o nome do seu projeto do BigQuery. - Realize um dos seguintes passos:
- Se estiver a usar um token de acesso pré-gerado, defina a propriedade de ligação
OAuthAccessTokenpara o seu token de acesso. - Se estiver a usar um token de atualização pré-gerado, defina a propriedade
OAuthRefreshTokenconnection para o seu token de atualização, defina a propriedadeOAuthClientIdconnection para o seu ID de cliente e defina a propriedadeOAuthClientSecretconnection para o seu segredo do cliente.
- Se estiver a usar um token de acesso pré-gerado, defina a propriedade de ligação
Para mais informações, consulte o artigo Utilizar o OAuth 2.0 para aceder às APIs Google.
O exemplo seguinte usa a autenticação de token de acesso pré-gerado:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=2; OAuthAccessToken=ya29.a0AfH6SMCiH1L-x_yZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_;
O exemplo seguinte usa a autenticação de tokens de atualização pré-gerados:
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;
Autentique-se com as Credenciais padrão da aplicação
As credenciais padrão da aplicação (ADC) são uma estratégia usada pelas bibliotecas de autenticação para encontrar automaticamente credenciais com base no ambiente da aplicação.
Quando estabelece uma ligação com o controlador JDBC para o BigQuery, faça o seguinte:
- Defina a
OAuthTypepropriedade de associação como3. - Defina a propriedade de ligação
ProjectIdpara o nome do seu projeto do BigQuery.
Para mais informações, consulte o artigo Configure as Credenciais padrão da aplicação.
O exemplo seguinte usa a autenticação ADC:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=3;
Efetue a autenticação com um método externo
Pode autenticar com métodos externos, como a federação de identidades da força de trabalho ou a federação de identidades da carga de trabalho.
Quando estabelece uma ligação com o controlador JDBC para o BigQuery, faça o seguinte:
- Defina a
OAuthTypepropriedade de associação como4. - Defina a propriedade de ligação
ProjectIdpara o nome do seu projeto do BigQuery. - Realize um dos seguintes passos:
- Defina a propriedade de ligação
OAuthPvtKeyou a propriedade de ligaçãoOAuthPvtKeyPathpara o caminho completo do ficheiro de configuração. ParaOAuthPvtKey, pode usar o objeto JSON da chave ou o caminho completo do ficheiro de chave. - Defina a propriedade de ligação
OAuthPvtKeypara o objeto de configuração da conta externa não processada. - Defina as seguintes
BYOIDpropriedades da ligação, que são descritas na secção propriedades da ligação:BYOID_AudienceUriBYOID_CredentialSourceBYOID_PoolUserProjectBYOID_SA_Impersonation_UriBYOID_SubjectTokenTypeBYOID_TokenUri
- Defina a propriedade de ligação
Os exemplos seguintes usam métodos de autenticação externos:
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;"
Segue-se um exemplo de um ficheiro de configuração:
{ "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" }
Estabeleça uma ligação
Para estabelecer uma ligação com o controlador JDBC para o BigQuery, faça o seguinte:
Adicione a dependência
google-cloud-bigquery-jdbcao ficheiro de compilação 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 estiver a usar um projeto do Gradle, adicione também o seguinte ao ficheiro de compilação:
dependencies { // ... other dependencies implementation files('path/to/file/google-jdbc-jar-with-dependencies.jar') }
Identifique a string de ligação para o controlador JDBC. Esta string capta todas as informações essenciais necessárias para estabelecer uma ligação entre a sua aplicação Java e uma base de dados específica. O controlador JDBC para a string de ligação do BigQuery tem o seguinte formato:
jdbc:bigquery://HOST:PORT;ProjectId=PROJECT_ID;OAuthType=AUTH_TYPE;PROPERTIES
Substitua o seguinte:
HOST: o DNS ou o endereço IP do servidor.PORT: o número da porta TCP.PROJECT_ID: o ID do seu projeto do BigQuery.AUTH_TYPE: um número que especifica o tipo de autenticação que usou. Uma das seguintes opções:0: autenticação da conta de serviço Google1: autenticação da conta de utilizador Google2: autenticação de chave de acesso ou de atualização pré-gerada3: autenticação de credenciais padrão da aplicação4: Métodos de autenticação externos, como a federação de identidades da força de trabalho ou a federação de identidades da carga de trabalho
PROPERTIES: propriedades de ligação adicionais para o controlador JDBC. As propriedades têm de ser indicadas no formatoproperty_1=value_1; property_2=value_2;.... Os nomes das propriedades não são sensíveis a maiúsculas e minúsculas. Para ver uma lista completa das propriedades de associação, consulte o artigo Propriedades de associação.
Estabeleça ligação ao controlador com a classe
DriverManagerouDataSource.Associar à turma
DriverManager:import java.sql.Connection; import java.sql.DriverManager; private static Connection getJdbcConnectionDM(){ Connection connection = DriverManager.getConnection(CONNECTION_STRING); return connection; }
Substitua
CONNECTION_STRINGpela string de ligação do passo anterior.Associar à turma
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; }
Substitua
CONNECTION_STRINGpela string de ligação do passo anterior.A classe
DataSourcetambém tem métodos setter, que pode usar para definir propriedades de ligação, em vez de incluir todas as propriedades na string de ligação. Segue-se um exemplo: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(); }
Explore as funcionalidades do condutor
Agora que tem ligação ao controlador JDBC para o BigQuery, pode explorar as respetivas funcionalidades.
Conetor SQL
O conetor SQL permite-lhe executar consultas SQL com o BigQuery. Use a propriedade de ligação QueryDialect para especificar o dialeto SQL que quer usar.
Mapeamento de tipos de dados
O controlador JDBC para o BigQuery suporta os seguintes mapeamentos de tipos de dados:
| Tipo do BigQuery | Tipo de SQL | Tipo 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 |
Registos aninhados e repetidos
O controlador JDBC para o BigQuery suporta registos aninhados e repetidos, em que o controlador devolve o tipo base como um objeto struct ou uma representação de string de um objeto JSON.
Segue-se um exemplo de consulta do registo base de dados de estrutura:
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());
O resultado é o seguinte:
{
"v": {
"f": [
{
"v": "Adam"
},
{
"v": "5"
}
]
}
}Segue-se um exemplo de consulta de subcomponentes de um objeto 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()); }
Segue-se um exemplo de consulta de uma matriz padrão de dados repetidos:
// 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]); }
Segue-se um exemplo de consulta de uma matriz struct de dados repetidos:
// 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]); }
Conjunto de resultados grande
Para obter grandes conjuntos de resultados quando usa o controlador JDBC para o BigQuery, faça o seguinte:
- Se a propriedade de associação da
QueryDialectestiver definida comoSQL, especifique um conjunto de dados e uma tabela para armazenar os resultados com as propriedades de associação daLargeResultDataseteLargeResultTable. - Se a propriedade de associação da
QueryDialectestiver definida comoBIG_QUERY, defina a propriedade de associação daAllowLargeResultscomoTRUEe especifique um conjunto de dados e uma tabela para armazenar os resultados com as propriedades de associaçãoLargeResultDataseteLargeResultTable.
Em ambos os casos, pode usar a propriedade LargeResultsDatasetExpirationTime de associação para especificar a duração do ciclo de vida do conjunto de dados de destino.
Se não especificar valores para as propriedades de ligação LargeResultDataset e LargeResultTable, o controlador JDBC para o BigQuery cria um conjunto de dados oculto denominado _google_jdbc e uma tabela temporária no mesmo.
Estes recursos são eliminados automaticamente após 24 horas.
Todas as quotas e limites do BigQuery continuam a aplicar-se.
Parâmetros posicionais
Os parâmetros posicionais são marcadores de posição numa declaração SQL que representam
valores a fornecer durante a execução da consulta. O controlador JDBC para o BigQuery suporta parâmetros posicionais com o símbolo de ponto de interrogação (?). Segue-se um exemplo de uma consulta que usa um parâmetro posicional:
PreparedStatement preparedStatement = connection.prepareStatement( "SELECT * FROM MyTestTable where testColumn = ?"); preparedStatement.setString(1, "string2"); ResultSet resultSet = statement.executeQuery(selectQuery);
SELECT consultas
Pode usar o controlador JDBC para o BigQuery para executar SELECT
consultas através da API BigQuery ou da API BigQuery Storage Read.
Se usar a API BigQuery, defina a propriedade JobCreationModeconnection
para especificar se a consulta é executada com ou sem a criação de uma tarefa.
Se usar a API Storage Read, use a propriedade de ligação para ativar a API e verificar se as seguintes condições são cumpridas:EnableHighThroughputAPI
- O esquema não usa o tipo
INTERVAL. - O número total de linhas é inferior ao valor da propriedade de associação
HighThroughputMinTableSize. - A proporção de linhas para o tamanho da página é inferior ao valor da propriedade de ligação
HighThroughputActivationRatio.
Inserção em massa
Para realizar operações de inserção em massa com o controlador JDBC para o BigQuery, use o método executeBatch.
Segue-se um exemplo de uma operação de escrita:
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();
Registo
O controlador JDBC para o BigQuery suporta ações de registo no controlador através do registo de utilidades Java. O registo pode afetar o desempenho, por isso, só o ative para capturar um problema e desative-o quando terminar.
Para configurar o registo, faça o seguinte:
Defina a propriedade
LogLevelde acordo com a seguinte tabela:Valor de LogLevelLogLevelDescrição 0OFFNão são registadas mensagens. 1SEVEREFalhas ou erros graves que afetam a funcionalidade da aplicação. 2WARNINGPotenciais problemas ou situações que podem exigir atenção. 3INFOMensagens informativas sobre eventos normais e progresso. 4CONFIGMensagens relativas a informações de configuração estáticas. 5FINEMensagens de rastreio gerais. 6FINERMensagens de rastreio detalhadas. 7FINESTMensagens de rastreio altamente detalhadas, úteis para depuração extensiva. 8ALLTodas as mensagens são registadas. Defina a propriedade
LogPathpara o caminho completo da pasta onde quer guardar o ficheiro de registo.
Em alternativa, pode configurar o registo com as variáveis de ambiente BIGQUERY_JDBC_LOG_LEVEL
e BIGQUERY_JDBC_LOG_PATH.
Propriedades de associação
Num controlador JDBC, as propriedades de ligação são parâmetros de configuração que pode incluir na string de ligação ou transmitir através dos métodos setter quando estabelece uma ligação a uma base de dados. As seguintes propriedades de ligação são suportadas pelo controlador JDBC para o BigQuery.
AdditionalProjects
Esta propriedade de ligação permite que as consultas e as operações de metadados acedam a conjuntos de dados em projetos especificados, além do projeto principal definido na string de ligação.
- Valor predefinido: N/A
- Tipo de dados: string (string de IDs de projetos separados por vírgulas)
- Obrigatório: não
AllowLargeResults
Esta propriedade de ligação especifica se o controlador processa resultados de consultas
superiores a 128 MB quando a propriedade de ligação QueryDialect está
definida como BIG_QUERY. Se a propriedade de associação QueryDialect estiver definida como SQL, a propriedade de associação AllowLargeResults é definida como TRUE por predefinição. Para
mais informações, consulte o artigo Conjunto de resultados grande.
- Valor predefinido:
TRUE - Tipo de dados: booleano
- Obrigatório: não
BYOID_AudienceUri
Esta propriedade de associação especifica a propriedade de público-alvo num ficheiro de configuração de uma conta externa. A propriedade audience contém o nome do recurso do Workload Identity Pool ou do Workforce Pool e o identificador do fornecedor nesse pool.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: apenas quando
OAuthType=4
BYOID_CredentialSource
Esta propriedade de ligação define as informações de obtenção de tokens e as informações ambientais.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: apenas quando
OAuthType=4
BYOID_PoolUserProject
Esta propriedade de ligação define o projeto do utilizador quando o conjunto de trabalhadores está a ser usado. O projeto tem de ter a autorização serviceusage.services.use do IAM.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: apenas quando
OAuthType=4e usar o grupo de trabalhadores
BYOID_SA_Impersonation_Uri
Esta propriedade de ligação define o URL para a representação da conta de serviço quando estão a ser usados conjuntos de identidades de carga de trabalho e as APIs não foram integradas com o UberMint.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: apenas quando
OAuthType=4e usar o Workload Identity Pool com a simulação da conta de serviço
BYOID_SubjectTokenType
Esta propriedade de associação define o token STS com base na especificação de troca de tokens. O valor tem de ser um dos seguintes:
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- Valor predefinido:
urn:ietf:params:oauth:tokentype:id_token - Tipo de dados: string
- Obrigatório: apenas quando
OAuthType=4
BYOID_TokenUri
Esta propriedade de associação define o ponto final de troca de tokens do STS.
- Valor predefinido:
https://sts.googleapis.com/v1/token - Tipo de dados: string
- Obrigatório: não
ConnectionPoolSize
Esta propriedade de ligação define o tamanho do conjunto de ligações se o agrupamento de ligações estiver ativado.
- Valor predefinido:
10 - Tipo de dados: Long
- Obrigatório: não
DefaultDataset
Esta propriedade de ligação especifica o conjunto de dados usado quando executa uma consulta
sem especificar explicitamente um conjunto de dados. Pode usar o formato
DATASET_ID ou o formato
PROJECT_ID.DATASET_ID.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
EnableHighThroughputAPI
Esta propriedade de ligação determina se a API Storage Read pode ser usada. As propriedades de ligação HighThroughputActivationRatio e HighThroughputMinTableSize
também têm de ser satisfeitas para usar a
API Storage Read.
- Valor predefinido:
FALSE - Tipo de dados: booleano
- Obrigatório: não
EnableSession
Esta propriedade de ligação determina se a ligação inicia uma sessão. Quando usado, o ID da sessão é transmitido a todas as consultas subsequentes.
- Valor predefinido:
FALSE - Tipo de dados: booleano
- Obrigatório: não
EnableWriteAPI
Esta propriedade de associação determina se é possível usar a API Storage Write. Tem de estar definido como TRUE para ativar as inserções em massa.
- Valor predefinido:
FALSE - Tipo de dados: booleano
- Obrigatório: não
EndpointOverrides
Esta propriedade de ligação define pontos finais personalizados numa string separada por vírgulas.
- Valores predefinidos:
BIGQUERY=https://bigquery.googleapis.comREAD_API=https://bigquerystorage.googleapis.comOAUTH2=https://oauth2.googleapis.comSTS=https://sts.googleapis.com
- Tipo de dados: string
- Obrigatório: não
FilterTablesOnDefaultDataset
Esta propriedade de associação controla o âmbito dos metadados devolvidos pelos métodos DatabaseMetaData.getTables() e DatabaseMetaData.getColumns().
Quando a propriedade está desativada, não ocorre qualquer filtragem. A propriedade de associação DefaultDataset
também tem de ser definida para ativar a filtragem.
- Valor predefinido:
FALSE - Tipo de dados: booleano
- Obrigatório: não
HighThroughputActivationRatio
Esta propriedade de ligação define um limite para o número de páginas numa resposta de consulta. Quando este número é excedido e as condições EnableHighThroughputAPI e HighThroughputMinTableSize são cumpridas, o condutor começa a usar a API Storage Read.
- Valor predefinido:
2 - Tipo de dados: número inteiro
- Obrigatório: não
HighThroughputMinTableSize
Esta propriedade de ligação define um limite para o número de linhas numa resposta de consulta. Quando este número é excedido e as condições EnableHighThroughputAPI e HighThroughputActivationRatio são cumpridas, o condutor começa a usar a API Storage Read.
- Valor predefinido:
100 - Tipo de dados: número inteiro
- Obrigatório: não
JobCreationMode
Esta propriedade de ligação determina se as consultas são executadas sem criar tarefas. Um valor 1 significa que são criadas tarefas para cada consulta e um valor 2 significa que as consultas podem ser executadas sem tarefas.
- Valor predefinido:
2 - Tipo de dados: número inteiro
- Obrigatório: não
JobTimeout
Esta propriedade de ligação define o limite de tempo da tarefa (em segundos) após o qual a tarefa é cancelada no servidor.
- Valor predefinido:
0 - Tipo de dados: Long
- Obrigatório: não
KMSKeyName
Esta propriedade de ligação define o nome da chave do KMS para encriptar dados.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
Labels
Esta propriedade de ligação define etiquetas associadas à consulta para organizar e agrupar tarefas de consulta.
- Valor predefinido: N/A
- Tipo de dados: Map<String, String>
- Obrigatório: não
LargeResultDataset
Esta propriedade de ligação define o conjunto de dados de destino para os resultados da consulta. Para mais informações, consulte o artigo Conjunto de resultados grande.
- Valor predefinido:
_google_jdbc, apenas quandoQueryDialect=BIG_QUERYou quandoQueryDialect=SQLe a propriedade de associaçãoLargeResultTableestá definida - Tipo de dados: string
- Obrigatório: não
LargeResultsDatasetExpirationTime
Esta propriedade de ligação especifica a duração total de todas as tabelas num conjunto de dados, em milissegundos. Esta propriedade é ignorada se o conjunto de dados já tiver um tempo de expiração predefinido definido.
- Valor predefinido:
3600000 - Tipo de dados: Long
- Obrigatório: não
LargeResultTable
Esta propriedade de ligação define a tabela de destino para os resultados da consulta. Para mais informações, consulte o artigo Conjunto de resultados grande.
- Valor predefinido:
temp_table..., apenas quandoQueryDialect=BIG_QUERYou quandoQueryDialect=SQLe a propriedade de ligaçãoLargeResultTableestá definida - Tipo de dados: string
- Obrigatório: não
ListenerPoolSize
Esta propriedade de ligação define o tamanho do conjunto de ouvintes se o agrupamento de ligações estiver ativado.
- Valor predefinido:
10 - Tipo de dados: Long
- Obrigatório: não
Location
Esta propriedade de ligação especifica a localização onde os conjuntos de dados são criados ou consultados. O BigQuery determina automaticamente a localização se este valor não estiver definido.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
LogLevel
Esta propriedade de ligação controla o nível de detalhe registado durante as interações com a base de dados. Para ver as descrições de nível, consulte a secção Registo.
- Valor predefinido:
0 - Tipo de dados: número inteiro
- Obrigatório: não
LogPath
Esta propriedade de ligação define o diretório onde os ficheiros de registo são escritos. Para mais detalhes, consulte a secção Registo.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
MaximumBytesBilled
Esta propriedade de ligação limita o número de bytes faturados. As consultas com bytes faturados superiores a este limite falham sem incorrer numa cobrança.
- Valor predefinido:
0 - Tipo de dados: Long
- Obrigatório: não
MaxResults
Esta propriedade de ligação define o número máximo de resultados por página.
- Valor predefinido:
10000 - Tipo de dados: Long
- Obrigatório: não
MetaDataFetchThreadCount
Esta propriedade de ligação configura o número de threads usados para métodos de metadados da base de dados.
- Valor predefinido:
32 - Tipo de dados: número inteiro
- Obrigatório: não
OAuthAccessToken
Esta propriedade de ligação especifica o token de acesso usado para a autenticação de tokens de acesso pré-gerados.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: quando
AUTH_TYPE=2
OAuthClientId
Esta propriedade de ligação define o ID de cliente para a autenticação de tokens de atualização pré-gerados e a autenticação de contas de utilizador.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: quando
AUTH_TYPE=1ouAUTH_TYPE=2
OAuthClientSecret
Esta propriedade de ligação define o segredo do cliente para a autenticação do token de atualização pré-gerado e a autenticação da conta de utilizador.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: quando
AUTH_TYPE=1ouAUTH_TYPE=2
OAuthP12Password
Esta propriedade de ligação define a palavra-passe para o ficheiro de chave PKCS12.
- Valor predefinido:
notasecret - Tipo de dados: string
- Obrigatório: não
OAuthPvtKey
Esta propriedade de ligação define a chave da conta de serviço quando usa a autenticação da conta de serviço. Este valor pode ser um objeto de ficheiro de chave JSON não processado ou um caminho para o ficheiro de chave JSON.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: quando
AUTH_TYPE=0e o valor deOAuthPvtKeyPathnão estão definidos
OAuthPvtKeyPath
Esta propriedade de ligação define o caminho para a chave da conta de serviço quando usa a autenticação da conta de serviço.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: quando
AUTH_TYPE=0e os valoresOAuthPvtKeyeOAuthServiceAcctEmailnão estão definidos
OAuthRefreshToken
Esta propriedade de ligação define o token de atualização para a autenticação do token de atualização pré-gerado. Um símbolo de atualização do OAuth 2.0 é um tipo especial de símbolo que permite a uma aplicação obter um novo símbolo de acesso quando o atual expira, sem exigir que o utilizador volte a autenticar.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: quando
AUTH_TYPE=2
OAuthServiceAcctEmail
Esta propriedade de ligação define o email da conta de serviço quando usa a autenticação da conta de serviço.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: quando
AUTH_TYPE=0e o valor deOAuthPvtKeyPathnão estão definidos
OAuthType
Esta propriedade de ligação especifica o tipo de autenticação. O valor tem de ser um dos seguintes:
0: autenticação da conta de serviço Google1: autenticação da conta de utilizador Google2: autenticação de chave de acesso ou de atualização pré-gerada3: autenticação de credenciais padrão da aplicação4: métodos de autenticação externos, como a federação de identidades da força de trabalho ou a federação de identidades da carga de trabalho- Valor predefinido:
-1 - Tipo de dados: número inteiro
- Obrigatório: sim
PartnerToken
Esta propriedade de associação é usada pelos parceiros para acompanhar a utilização do controlador. Google Cloud
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
PrivateServiceConnectUris
Esta propriedade de associação é idêntica à propriedade do EndpointOverrides. Em alternativa, use a propriedade EndpointOverrides.
ProjectId
Esta propriedade de ligação define o ID do projeto predefinido para o controlador. Este projeto é usado para executar consultas e é faturado pela utilização de recursos. Se não estiver definido, o controlador infere um ID do projeto.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não, mas altamente recomendado
ProxyHost
Esta propriedade de ligação define o nome do anfitrião ou o endereço IP de um servidor proxy através do qual a ligação JDBC é encaminhada.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
ProxyPort
Esta propriedade de ligação define o número de porta no qual o servidor proxy está a ouvir ligações.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
ProxyPwd
Esta propriedade de ligação define a palavra-passe necessária para a autenticação quando se liga através de um servidor proxy que a requer.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
ProxyUid
Esta propriedade de ligação define o nome de utilizador necessário para a autenticação quando se estabelece ligação através de um servidor proxy que o exige.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
QueryDialect
Esta propriedade de ligação define o dialeto de SQL para a execução de consultas. Use SQL
para o GoogleSQL (altamente recomendado) e BIG_QUERY para o SQL antigo.
- Valor predefinido:
SQL - Tipo de dados: string
- Obrigatório: não
QueryProperties
Esta propriedade de associação configura as modificações do comportamento das consultas.
Segue-se um exemplo definido na string de ligação:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; QueryProperties=dataset_project_id=TestProjectID,time_zone=America/New_York;
Segue-se um exemplo definido na turma 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);
Para mais detalhes, consulte a secção ConnectionProperty.
- Valor predefinido: N/A
- Tipo de dados: Map<String, String>
- Obrigatório: não
RequestGoogleDriveScope
Esta propriedade de ligação é usada para pedir acesso ao Google Drive. Quando
ativado, o âmbito do Drive de leitura é adicionado à ligação. Para ativar esta propriedade, defina o valor como 1.
- Valor predefinido:
0 - Tipo de dados: número inteiro
- Obrigatório: não
RetryInitialDelay
Esta propriedade de ligação define o atraso (em segundos) antes da primeira repetição.
- Valor predefinido:
0 - Tipo de dados: Long
- Obrigatório: não
RetryMaxDelay
Esta propriedade de ligação define o limite máximo (em segundos) para o atraso de nova tentativa.
- Valor predefinido:
0 - Tipo de dados: Long
- Obrigatório: não
ServiceAccountImpersonationChain
Esta propriedade de ligação especifica uma lista de emails de contas de serviço separados por vírgulas na cadeia de roubo de identidade.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
ServiceAccountImpersonationEmail
Esta propriedade de ligação define o email da conta de serviço a ser representado.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
ServiceAccountImpersonationScopes
Esta propriedade de ligação especifica uma lista separada por vírgulas de âmbitos do OAuth2 a usar com a conta roubada.
- Valor predefinido:
https://www.googleapis.com/auth/bigquery - Tipo de dados: string
- Obrigatório: não
ServiceAccountImpersonationTokenLifetime
Esta propriedade de ligação define o tempo de vida do token da conta roubada (em segundos).
- Valor predefinido:
3600 - Tipo de dados: número inteiro
- Obrigatório: não
SSLTrustStore
Esta propriedade de ligação especifica o caminho completo para o Java TrustStore que contém certificados de autoridade de certificação (AC) fidedignos. O controlador usa este repositório fidedigno para validar a identidade do servidor durante o handshake SSL/TLS.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: não
SSLTrustStorePwd
Esta propriedade de ligação especifica a palavra-passe para o Java TrustStore especificado na propriedade SSLTrustStore.
- Valor predefinido: N/A
- Tipo de dados: string
- Obrigatório: apenas se usar um TrustStore Java protegido por palavra-passe
SWA_ActivationRowCount
Esta propriedade de ligação define um número limite de executeBatch insertlinhas
que, quando excedido, faz com que o conector mude para a
API Storage Write.
- Valor predefinido:
3 - Tipo de dados: número inteiro
- Obrigatório: não
SWA_AppendRowCount
Esta propriedade de ligação define o tamanho da stream de gravação.
- Valor predefinido:
1000 - Tipo de dados: número inteiro
- Obrigatório: não
Timeout
Esta propriedade de ligação define o tempo, em segundos, que o conector repete uma chamada API com falha antes de atingir o limite de tempo.
- Valor predefinido:
0 - Tipo de dados: Long
- Obrigatório: não
UniverseDomain
Esta propriedade de ligação define o domínio do universo, o domínio de nível superior associado aos Google Cloud recursos da sua organização.
- Valor predefinido:
googleapis.com - Tipo de dados: string
- Obrigatório: não
UnsupportedHTAPIFallback
Esta propriedade de ligação determina se o conetor recorre à API REST (quando definida como TRUE) ou devolve um erro (quando definida como FALSE).
- Valor predefinido:
TRUE - Tipo de dados: booleano
- Obrigatório: não
UseQueryCache
Esta propriedade de ligação ativa o armazenamento em cache de consultas.
- Valor predefinido:
TRUE - Tipo de dados: booleano
- Obrigatório: não