- Drivers ADBC
- Hardcharger
Arrow da consulta à ingestão
Leia resultados como lotes de registros Arrow e passe o leitor de outro driver ADBC diretamente à ingestão em massa do Hardcharger. Resultados e uploads grandes podem usar conexões paralelas.
Entre com sua identidade
Use senhas, SSO pelo navegador, troca de tokens do provedor de identidade ou login por certificado de cliente. TLS é o padrão nas conexões hardcharger://.
Um driver, várias linguagens
O wheel Python inclui a biblioteca compartilhada nativa. A API C do ADBC também conecta Go, C/C++, R, Rust e outros clientes por um gerenciador de drivers.
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.
Instale e consulte
Instale o wheel Python, configure o URI e as credenciais do servidor no ambiente e transmita resultados como lotes Arrow. Não é necessário converter para pandas.
1# pip install adbc-driver-hardcharger
2import os
3from adbc_driver_hardcharger import dbapi as hardcharger
4
5with hardcharger.connect(
6 uri=os.environ["HARDCHARGER_URI"],
7 username=os.environ["HARDCHARGER_USERNAME"],
8 password=os.environ["HARDCHARGER_PASSWORD"],
9) as conn, conn.cursor() as cur:
10 cur.execute("SELECT 42 AS answer, ? AS greeting", ["hello"])
11 for batch in cur.fetch_record_batch():
12 print(batch)HARDCHARGER_URI é hardcharger://host:31337 com TLS. Use hardcharger://localhost:31337?tls=false apenas para um servidor local de desenvolvimento.
SSO pelo navegador e mTLS
Use o provedor de identidade configurado no servidor ou entre com um certificado de cliente. Esses recursos estão incluídos no Hardcharger; seu administrador precisa habilitar a configuração correspondente no servidor.
1from adbc_driver_hardcharger import dbapi as hardcharger
2
3# Browser SSO: the server must have an identity provider configured.
4with hardcharger.connect(uri="hardcharger://db.example.com", auth_type="external") as conn:
5 print(conn.current_user())
6
7# Client-certificate sign-in: the server must enable mTLS sign-in.
8with hardcharger.connect(
9 uri="hardcharger://db.example.com",
10 auth_type="client_certificate",
11 tls_root_certs="ca.pem",
12 tls_client_cert="client.pem",
13 tls_client_key="client-key.pem",
14) as conn:
15 print(conn.current_user())Transmita dados para o Hardcharger
A ingestão em massa aceita um leitor Arrow, permitindo produzir e consumir lotes incrementalmente. Este exemplo cria uma nova tabela; use mode="append" para carregar uma tabela existente compatível.
1# pip install adbc-driver-hardcharger pyarrow
2import os
3import pyarrow as pa
4from adbc_driver_hardcharger import dbapi as hardcharger
5
6schema = pa.schema([("id", pa.int64()), ("amount", pa.float64())])
7
8def batches():
9 for start in range(0, 4000, 1000):
10 yield pa.record_batch(
11 [pa.array(range(start, start + 1000), type=pa.int64()),
12 pa.array([12.50] * 1000, type=pa.float64())],
13 schema=schema,
14 )
15
16with hardcharger.connect(
17 uri=os.environ["HARDCHARGER_URI"],
18 username=os.environ["HARDCHARGER_USERNAME"],
19 password=os.environ["HARDCHARGER_PASSWORD"],
20) as conn, conn.cursor() as cur:
21 with pa.RecordBatchReader.from_batches(schema, batches()) as reader:
22 rows = cur.adbc_ingest(table_name="orders", data=reader, mode="create")
23 print(f"Loaded {rows:,} rows")O streaming de outro banco funciona da mesma forma: passe o leitor fetch_record_batch() do cursor de origem como data. Mantenha o cursor de origem aberto enquanto o Hardcharger o consome.
Mais integrações Hardcharger →Driver ADBC para Hardcharger — perguntas frequentes
O driver Hardcharger é gratuito?
Sim. O driver e o servidor Hardcharger são de código aberto sob Apache-2.0. Todos os recursos do servidor estão incluídos, sem taxa por edição.
Ele substitui o driver ADBC GizmoSQL?
Use adbc-driver-hardcharger para Hardcharger via Warp SQL. Mantenha adbc-driver-gizmosql para servidores GizmoSQL existentes via Arrow Flight SQL. Os drivers compartilham a interface ADBC, mas usam protocolos de rede diferentes.
Como transmito dados de Oracle, Db2 ou Quack?
Abra as conexões da origem e do Hardcharger, execute uma consulta na origem e passe fetch_record_batch() ao adbc_ingest() do cursor de destino. Mantenha as duas conexões abertas até a ingestão terminar. As páginas dos drivers incluem exemplos completos.
Como funcionam TLS e login pelo navegador?
hardcharger://host:31337 usa TLS por padrão. Acrescente ?tls=false apenas para desenvolvimento local. Para SSO pelo navegador, conecte com auth_type="external" a um servidor configurado com um provedor de identidade. Login por certificado de cliente exige a configuração de login mTLS no servidor.
Pronto para mover seus dados?
Instale o Hardcharger gratuitamente e use drivers ADBC para transmitir sua primeira tabela.