Usar o driver ODBC para BigQuery
O driver Open Database Connectivity (ODBC) para BigQuery conecta seus aplicativos não Java ao BigQuery, permitindo que você use os recursos do BigQuery com suas ferramentas e infraestrutura preferidas. Para conectar aplicativos Java ao BigQuery, use o driver JDBC para BigQuery.
O driver ODBC para BigQuery está disponível sob a licença Apache 2.0.
Antes de começar
Familiarize-se com os drivers ODBC e os gerenciadores de drivers.
Verifique se o sistema operacional atende aos seguintes requisitos:
Sistema operacional Arquiteturas compatíveis Versão mínima e dependências Windows 32 bits (x86), 64 bits (x64) Versão: Windows 10, Windows Server 2016 ou posterior
Dependência: Microsoft Visual C++ Redistribuível para Visual Studio 2019 ou 2022macOS 64 bits (x86_64), ARM64 (Apple Silicon) Versão: macOS 12 (Monterey) ou mais recente
Dependência: um gerenciador de drivers ODBC (por exemplo, unixODBC). Adicione o diretório de instalação ao seuDYLD_LIBRARY_PATH.Linux 64 bits (x86_64) Versão: qualquer distribuição com glibc 2.27 ou mais recente (por exemplo, Ubuntu 20.04 LTS+, Debian 11+)
Dependência: um gerenciador de drivers ODBC (por exemplo, unixODBC). Adicione o diretório de instalação ao seuLD_LIBRARY_PATH.Autentique-se no BigQuery e anote as seguintes informações, que serão usadas mais tarde quando você estabelecer uma conexão com o driver ODBC para BigQuery. Você só precisa anotar as informações correspondentes ao método de autenticação que você usa.
Método de autenticação Informações de autenticação Exemplo Propriedade de conexão (para definir mais tarde) Conta de serviço padrão Chave da conta de serviço (objeto JSON) my-sa-keyKeyFilePathFederação de identidade da carga de trabalho ou federação de identidade de colaboradores Propriedade de público-alvo do arquivo de configuração da conta externa //iam.googleapis.com/locations/global/...BYOID_AudienceUrlRecuperação de token e arquivo de informações ambientais {"file":"/path/to/file"}BYOID_CredentialSourceProjeto do usuário (somente para pool de força de trabalho) my_projectBYOID_PoolUserProjectTipo de token STS id_tokenBYOID_SubjectTokenTypeEndpoint de troca de token do STS https://sts.googleapis.com/v1/tokenBYOID_TokenUrlApplication Default Credentials Nenhum N/A N/A
Instalar e configurar o driver ODBC
É possível instalar e configurar o driver ODBC para BigQuery usando um sistema operacional Windows ou não Windows.
Windows
Instale o driver que corresponde à arquitetura do seu aplicativo:
- Faça o download do
arquivo
ODBCDriverforBigQuery_windows_x86.msipara aplicativos de 32 bits. - Faça o download do
arquivo
ODBCDriverforBigQuery_windows_x64.msipara aplicativos de 64 bits.
- Faça o download do
arquivo
Crie um nome da fonte de dados (DSN) fazendo o seguinte:
- No menu Iniciar do Windows, acesse Fontes de dados ODBC e selecione a versão com a mesma arquitetura (32 ou 64 bits) do seu aplicativo cliente.
- Na página Administrador de fonte de dados ODBC, clique na guia Drivers.
- Na lista de drivers ODBC instalados, localize Driver ODBC para BigQuery.
- Selecione a guia DSN do sistema para criar um DSN para todos os usuários ou a guia DSN do usuário para criar um DSN para o usuário atual. Os DSNs do sistema são geralmente recomendados porque alguns aplicativos carregam dados usando contas de usuário diferentes e podem não detectar outros DSNs de usuário.
- Clique em Adicionar.
- Na caixa de diálogo Criar nova fonte de dados, selecione Driver ODBC para BigQuery e clique em Concluir. A caixa de diálogo Configuração de DSN do driver ODBC para BigQuery é aberta.
- No campo Nome da fonte de dados, insira um nome para o DSN.
- Adicione propriedades de conexão. Para uma lista completa de propriedades, consulte Propriedades de conexão.
Não Windows
Instale o driver correspondente ao seu sistema operacional:
- Faça o download do
arquivo
ODBCDriverforBigQuery_linux_latest.zippara Linux. - Faça o download do
arquivo
ODBCDriverforBigQuery_macos_latest.tar.gzpara macOS.
- Faça o download do
arquivo
Extraia o conteúdo do arquivo ZIP ou TAR baixado.
Mova o conteúdo do arquivo ZIP ou TAR para o diretório em que você quer instalar o conector. O caminho do objeto compartilhado do driver ODBC para BigQuery é
INSTALL_DIR/lib/libgoogle_cloud_odbc_bq_driver.so, em queINSTALL_DIRé o diretório de instalação.Atualize os arquivos
.inipara refletir o novo caminho do conector.O exemplo a seguir atualiza os arquivos
.iniem um sistema Linux:unzip linux_odbc-driver.VERSION.zip -d linux_odbc-driver.VERSION/ cd ./linux_odbc-driver.VERSION export INSTALL_DIR=$(pwd) export ODBCINI=$INSTALL_DIR/odbc.ini export ODBCINSTINI=$INSTALL_DIR/odbcinst.ini export GOOGLEBIGQUERYODBCINI=$INSTALL_DIR/googlebigqueryodbc.ini
Substitua
VERSIONpela versão do driver.
Estabelecer uma conexão
Para estabelecer uma conexão entre seu aplicativo e o BigQuery com o driver ODBC para BigQuery, identifique sua string de conexão. Você pode pular esta etapa se já tiver configurado as propriedades de conexão pelo DSN.
A string de conexão tem o seguinte formato:
Driver=ODBC Driver for BigQuery;ProjectId=PROJECT_ID;OAuthType=AUTH_TYPE;AUTH_PROPS;OTHER_PROPS
Substitua:
PROJECT_ID: o ID do seu projeto do BigQuery.AUTH_TYPE: um número que especifica o tipo de autenticação usado. Selecione uma destas opções:0: para autenticação de conta de serviço3: para autenticação de Application Default Credentials4: para autenticação da federação de identidade da carga de trabalho ou da federação de identidade de colaboradores
AUTH_PROPS: as informações de autenticação que você anotou ao autenticar no BigQuery, listadas no formatoproperty_1=value_1; property_2=value_2;.... Por exemplo,KeyFilePath=my-sa-key, se você fez a autenticação com uma conta de serviço.OTHER_PROPS(opcional): propriedades de conexão adicionais para o driver ODBC, listadas no formatoproperty_1=value_1; property_2=value_2;.... Para uma lista completa de propriedades de conexão, consulte Propriedades de conexão.
Propriedades da conexão
As propriedades de conexão do driver ODBC são parâmetros de configuração incluídos na string de conexão ao estabelecer uma conexão com um banco de dados. O driver ODBC para BigQuery é compatível com as seguintes propriedades de conexão.
| Propriedade de conexão | Descrição | Valor padrão | Tipo de dado | Obrigatório |
|---|---|---|---|---|
AdditionalProjects |
Projetos que o driver pode acessar para consultas e operações de metadados, além do projeto principal definido pela propriedade ProjectId.
|
N/A | String separada por vírgulas | Não |
AllowHtapiForLargeResults |
Determina se o driver pode usar a API BigQuery Storage Read. | 0 |
Booleano | Não |
AllowLargeResults |
Determina se o driver processa resultados de consultas maiores que 128 MB quando a propriedade QueryDialect está definida como BIG_QUERY. Se a propriedade QueryDialect estiver definida como SQL, o driver sempre processará resultados de consultas grandes.
|
0 |
Booleano | Não |
BYOID_AudienceUrl |
Contém o nome do recurso do pool de identidades da carga de trabalho ou do pool da força de trabalho e o identificador do provedor nesse pool. | N/A | String | Somente quando OAuthMechanism=4 |
BYOID_CredentialSource |
Define as informações necessárias para recuperar o token e algumas informações ambientais. | N/A | String | Somente quando OAuthMechanism=4 |
BYOID_PoolUserProject |
Defina o projeto quando ele for um pool de força de trabalho e não um pool de Identidade da carga de trabalho. | N/A | String | Somente quando OAuthMechanism=4 e usando um pool de funcionários |
BYOID_SubjectTokenType |
Define o tipo de token do STS com base na especificação de troca de token do Oauth2.0. Os valores esperados incluem:
|
N/A | String | Somente quando OAuthMechanism=4 |
BYOID_TokenUrl |
Define o endpoint de troca de token do STS. | https://sts.googleapis.com/v1/token |
String | Não |
DefaultDataset |
Serve como um conjunto de dados designado em um projeto que o driver referencia automaticamente quando você executa consultas sem especificar explicitamente um conjunto de dados. | N/A | String | Não |
FilterTablesOnDefaultDataset |
Determina o escopo dos metadados que os métodos de metadados de tabela ou coluna retornam. Quando é "false", não há filtragem. Também é necessário definir a propriedade DefaultDataset para ativar a filtragem.
|
FALSE |
Booleano | Não |
EnableSession |
Determina se uma conexão inicia uma sessão. Quando ativada, a primeira consulta executada por essa conexão inicia uma sessão, e o driver transmite o ID da sessão para todas as consultas subsequentes. | 0 |
Booleano | Não |
JobCreationMode |
Permite ativar o caminho de consulta de baixa latência. Escolha uma das opções a seguir:
|
2 |
Número inteiro | Não |
KeyFilePath |
O caminho para a chave da conta de serviço ao usar a autenticação da conta de serviço. | N/A | String |
Somente quando OAuthMechanism=0
|
KMSKeyName |
Especifica o nome da chave do KMS a ser usada ao criptografar e descriptografar dados. | N/A | String | Não |
LargeResultsDataSetId |
Especifica o conjunto de dados de destino para armazenar resultados de consultas grandes. | N/A | String | Não |
LargeResultsDatasetExpirationTime |
Especifica o ciclo de vida de todas as tabelas no conjunto de dados de resultados grandes, em milissegundos. | 3600000 |
Longo | Não |
Location |
Especifica o local em que o driver cria ou consulta conjuntos de dados. | N/A | String | Não |
LogLevel |
Limita os detalhes que o motorista registra durante as interações. Escolha uma das opções a seguir:
|
0 |
Número inteiro | Não |
LogPath |
Especifica o diretório em que o driver grava arquivos de registro. | N/A | String | Não |
LogFileCount |
Especifica o número máximo de arquivos de registro a serem mantidos. | 0 |
Número inteiro | Não |
LogFileSize |
Especifica o tamanho máximo de cada arquivo de registro em bytes. | 0 |
Longo | Não |
MaxResults |
Especifica o número de resultados por página no resultado da API BigQuery. | 10000 |
Longo | Não |
MaxThreads |
Define o número máximo de linhas de execução que o conector pode usar para
processamento simultâneo em um pool de linhas de execução. Para configurar essa propriedade como uma
definição em todo o conector para conectores que não são do Windows, especifique-a no
arquivo googlebigqueryodbc.ini.
|
8 |
Número inteiro | Não |
OAuthMechanism |
O tipo de autenticação. Escolha uma das opções a seguir:
|
N/A | Número inteiro | Sim |
ProjectId |
O ID do projeto padrão para o motorista. O driver usa esse projeto para executar consultas e o fatura pelo uso de recursos. | N/A | String | Sim |
ProxyHost |
Nome do host ou endereço IP de um servidor proxy. | N/A | String | Não |
ProxyPort |
Número da porta em que o servidor proxy está detectando. | N/A | String | Não |
ProxyPwd |
Senha para autenticação ao se conectar por um servidor proxy. | N/A | String | Não |
ProxyUid |
Nome de usuário para autenticação ao se conectar por um servidor proxy. | N/A | String | Não |
PrivateServiceConnectUris |
Endpoints personalizados para substituir os endpoints padrão. Exemplos:
|
N/A | String separada por vírgulas | Não |
QueryDialect |
Especifica qual dialeto de consulta usar. Use SQL para o GoogleSQL (altamente recomendado) e BIG_QUERY para o SQL legado.
|
SQL |
String | Não |
QueryProperties |
Configura propriedades que podem modificar o comportamento da consulta. | N/A | Map<String, String> | Não |
UniverseDomain |
Especifica o domínio do universo da sua organização. | googleapis.com |
String | Não |
UseQueryCache |
Ativa o recurso de cache de consultas no BigQuery. | true |
Booleano | Não |
Mapeamento de tipo de dados
Quando você executa consultas pelo driver ODBC para BigQuery, ocorre o seguinte mapeamento de tipos de dados:
| Tipo do GoogleSQL | Tipo SQL ODBC |
|---|---|
INT64 | SQL_BIGINT |
BOOL | SQL_BIT |
DATE | SQL_TYPE_DATE |
FLOAT64 | SQL_DOUBLE |
TIME | SQL_TYPE_TIME |
TIMESTAMP | SQL_TYPE_TIMESTAMP |
DATETIME | SQL_TYPE_TIMESTAMP |
BYTES | SQL_VARBINARY |
STRING | SQL_VARCHAR |
ARRAY | SQL_VARCHAR |
STRUCT | SQL_VARCHAR |
INTERVAL | SQL_VARCHAR |
JSON | SQL_VARCHAR |
GEOGRAPHY | SQL_VARCHAR |
RANGE | SQL_VARCHAR |
NUMERIC | SQL_NUMERIC |
BIGNUMERIC | SQL_NUMERIC |
Exemplos
Os exemplos a seguir demonstram como usar consultas parametrizadas e scripts com várias instruções com o driver ODBC.
Consultas parametrizadas
// 1. Prepare statement std::string insert_stmt = "INSERT INTO MyTable VALUES (?, ?, ?)"; status = SQLPrepare(hstmt, (SQLCHAR*)insert_stmt.c_str(), SQL_NTS); // 2. Bind parameters std::string str_val = "example_string"; long long int_val = 12345; double float_val = 1.2345; // Bind string field status = SQLBindParameter( hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 50, 0, (SQLPOINTER)str_val.c_str(), str_val.size(), NULL); // Bind integer field status = SQLBindParameter( hstmt, 2, SQL_PARAM_INPUT, SQL_C_UBIGINT, SQL_BIGINT, 0, 0, &int_val, 0, NULL); // Bind float field status = SQLBindParameter( hstmt, 3, SQL_PARAM_INPUT, SQL_C_DOUBLE, SQL_DOUBLE, 0, 0, &float_val, 0, NULL); // 3. Execute statement status = SQLExecute(hstmt);
Scripts de várias instruções
// 1. Prepare and execute the multi-statement script std::string query = "CREATE OR REPLACE TABLE MyTable (StringField STRING, IntegerField INTEGER); " "INSERT INTO MyTable VALUES ('example', 123); " "SELECT * FROM MyTable;"; status = SQLExecDirect(hstmt, (SQLCHAR*)query.c_str(), SQL_NTS); // 2. Process results for each statement using SQLMoreResults do { SQLSMALLINT num_cols; status = SQLNumResultCols(hstmt, &num_cols); if (num_cols > 0) { // This is a result-returning statement (e.g., SELECT) while (SQLFetch(hstmt) == SQL_SUCCESS) { // Process rows... } } else { // This is a non-result statement (e.g., CREATE, INSERT) SQLLEN row_count; SQLRowCount(hstmt, &row_count); // Process affected rows... } } while (SQLMoreResults(hstmt) == SQL_SUCCESS);
Preços
Você pode baixar o driver ODBC para BigQuery sem custos financeiros. No entanto, ao usar o driver, os preços padrão de análise do BigQuery são aplicados.
A seguir
- Saiba mais sobre o driver JDBC para BigQuery.
- Conheça outras ferramentas para desenvolvedores do BigQuery.