odbc-avro

Crates.ioodbc-avro
lib.rsodbc-avro
version0.2.1
sourcesrc
created_at2019-08-16 14:57:15.510725
updated_at2020-01-23 15:08:30.935624
descriptionExtends odbc-iter crate functionality with ability to query Avro records and write entire ResultSet as Avro Object Container File data.
homepage
repositoryhttps://github.com/jpastuszek/odbc-avro
max_upload_size
id157391
size40,817
Jakub Pastuszek (jpastuszek)

documentation

https://docs.rs/odbc-avro

README

Latest Version Documentation License

This Rust crate extends odbc-iter crate functionality with ability to query Avro records and write entire ResultSet as Avro "Object Container File" data.

Example usage

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.
Commit count: 52

cargo fmt