Crates.io | odbc-avro |
lib.rs | odbc-avro |
version | 0.2.1 |
source | src |
created_at | 2019-08-16 14:57:15.510725 |
updated_at | 2020-01-23 15:08:30.935624 |
description | Extends odbc-iter crate functionality with ability to query Avro records and write entire ResultSet as Avro Object Container File data. |
homepage | |
repository | https://github.com/jpastuszek/odbc-avro |
max_upload_size | |
id | 157391 |
size | 40,817 |
This Rust crate extends odbc-iter
crate functionality with ability to query Avro records and write entire ResultSet
as Avro "Object Container File" data.
Write Avro object container file data from query.
use odbc_iter::Odbc;
use odbc_avro::{AvroConfiguration, AvroResultSet, Codec};
let mut connection = Odbc::connect(&std::env::var("DB_CONNECTION_STRING").expect("no DB_CONNECTION_STRING env set")).expect("connect to database");
// Configure handler with default `AvroConfiguration`.
let mut db = connection.handle_with_configuration(AvroConfiguration::default());
// For example query all table data from database.
let data = db.query(r#"SELECT * FROM sys.tables"#).expect("query failed");
// You can use `File` instead to write Avro object container file or any other `Write` type.
let mut buf = Vec::new();
// Write all rows as uncompressed Avro object container file where rows are represented as record object named "result_set".
data.write_avro(&mut buf, Codec::Null, "result_set").expect("write worked");
// Now `buf` contains all rows from `sys.tables` table serialized Avro object container file.