| Crates.io | odbc-avro |
| lib.rs | odbc-avro |
| version | 0.2.1 |
| created_at | 2019-08-16 14:57:15.510725+00 |
| updated_at | 2020-01-23 15:08:30.935624+00 |
| 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.