Drivers ADBC que movem dados para qualquer lugar
Uma API nativa de Arrow para GizmoSQL, Oracle, IBM Db2 e DuckDB Quack. Transmita uma tabela Oracle ou Db2 diretamente para GizmoSQL — sem bibliotecas de cliente do fornecedor, dataframes ou ODBC. Apenas pip install.
O que é ADBC?
ADBC — Arrow Database Connectivity — é uma API independente de fornecedor para mover dados entre bancos e aplicações como lotes colunares Apache Arrow. Assim como JDBC ou ODBC, uma API cobre vários bancos; mas ADBC usa Arrow nativamente, permitindo leituras e gravações em massa sem serialização linha a linha. O resultado: qualquer driver ADBC pode passar seus resultados diretamente a outro driver ADBC, permitindo transferir uma tabela Oracle ou Db2 ao GizmoSQL com poucas linhas de código.
Bidirecional por natureza
Qualquer origem ADBC pode alimentar qualquer destino ADBC. Transfira de Oracle ou Db2 para GizmoSQL ou no sentido inverso — os lotes Arrow nunca passam por disco ou dataframe.
Go puro, instalável por pip
Os drivers Oracle (TNS/TTC) e Db2 (DRDA) reimplementam o protocolo do zero em Go. Sem Instant Client, CLI ou JCC — apenas um wheel.
Colunar do início ao fim
Os resultados são transmitidos como lotes de registros Apache Arrow; leituras e gravações em massa usam o mínimo de CPU e cópias — no formato que suas ferramentas analíticas já precisam.
Uma API, todas as linguagens
Um núcleo nativo atende a Python, Go, R, Rust, C#, C/C++ e JavaScript e se integra ao DuckDB pela extensão adbc_scanner.
Uma API C. Todas as linguagens.
Os exemplos desta página estão em Python, mas ADBC expõe cada driver como uma biblioteca compartilhada compatível com C — o mesmo núcleo nativo funciona em Go, Rust, Java, C#, C/C++, JavaScript e outras linguagens. Um driver para toda arquitetura.
O conjunto de drivers
Quatro drivers, uma interface Arrow. Comece com o GizmoSQL e conecte seus ambientes Oracle e Db2 existentes.
Oracle e Db2 → GizmoSQL em poucas linhas
Como todos os drivers são nativos de Arrow, o leitor de um driver é a entrada de ingestão em massa de outro. Os dados fluem da origem ao destino sem passar por dataframe ou arquivo — e funciona nos dois sentidos. O GizmoSQL é um dos muitos destinos: qualquer banco compatível com ADBC pode ser origem ou destino.
- Sem Oracle Instant Client ou IBM CLI/JCC — basta instalar um wheel.
- Ou faça tudo em SQL pelo DuckDB / GizmoSQL via extensão adbc_scanner ou adbc.
- Tipos exatos do início ao fim: decimais mantêm a precisão, timestamps preservam os fusos.
1# Move a table from Oracle (or Db2) into GizmoSQL — no client libraries,
2# no pandas, nothing materialised on the client. Just Arrow, end to end.
3import adbc_driver_oracle.dbapi as oracle
4import adbc_driver_gizmosql.dbapi as gizmosql
5
6with oracle.connect(uri=oracle_uri) as src, \
7 gizmosql.connect(gizmosql_uri, username="token", password=token) as dst:
8 with src.cursor() as s, dst.cursor() as d:
9 s.execute("SELECT * FROM sales.orders")
10 rows = d.adbc_ingest(table_name="orders",
11 data=s.fetch_record_batch(), # streamed, not buffered
12 mode="replace")
13 dst.commit()
14 print(f"Loaded {rows:,} rows")Drivers ADBC — perguntas frequentes
O que é ADBC?
ADBC (Arrow Database Connectivity) é uma API independente de fornecedor para mover dados entre bancos e aplicações como lotes colunares Apache Arrow. Assim como JDBC ou ODBC, uma API funciona com vários bancos — mas ADBC usa Arrow nativamente; leituras e gravações em massa transmitem dados colunares sem serialização linha a linha. Qualquer driver ADBC pode passar seus resultados diretamente a outro driver ADBC.
Por que a GizmoData cria seus próprios drivers ADBC?
Porque drivers nativos de Arrow simplificam a troca de dados: uma tabela pode ir do Oracle ou Db2 diretamente ao GizmoSQL sem ser materializada no cliente. Nossos drivers Oracle e Db2 também são reimplementações em Go puro dos protocolos de comunicação; são instalados com um comando pip — sem Oracle Instant Client, IBM CLI ou JCC.
Os drivers Oracle e Db2 precisam de bibliotecas de cliente do fornecedor?
Não. O driver Oracle usa diretamente o protocolo nativo Oracle TNS/TTC, e o driver Db2 usa IBM DRDA, ambos escritos do zero em Go. Basta instalar o wheel Python — sem Instant Client, CLI ou JCC. São reimplementações independentes, sem afiliação ou endosso da Oracle ou IBM.
Posso usar esses drivers pelo DuckDB?
Sim. Cada driver é uma biblioteca ADBC c-shared padrão; a extensão adbc_scanner do DuckDB pode conectar o banco de origem com ATTACH, lê-lo em tempo real com projeções e filtros enviados à origem e gravar de volta com SQL simples (USE no esquema conectado e depois CREATE TABLE … AS). Credenciais podem ficar em um segredo DuckDB autossuficiente ou em um perfil de conexão ADBC — adbc_scanner aceita ambos, assim como a extensão adbc da Columnar. O GizmoSQL incorpora DuckDB; isso também funciona em um servidor GizmoSQL.
Em quais linguagens posso usar os drivers?
Cada driver inclui um módulo Go e um wheel Python, e a biblioteca ADBC c-shared pode ser chamada por Python, Go, R, Rust, C#, C/C++ e JavaScript. O driver GizmoSQL adiciona OAuth/SSO e detecção automática de DDL/DML em todas elas.