4个版本
0.2.1 | 2020年1月23日 |
---|---|
0.2.0 | 2019年8月28日 |
0.1.1 | 2019年8月27日 |
0.1.0 | 2019年8月16日 |
#1842 in 数据库接口
用于 odbc-tools
40KB
724 行
此Rust crate扩展了odbc-iter
crate的功能,增加了查询Avro记录和将整个ResultSet
作为Avro "对象容器文件"数据写入的能力。
示例用法
从查询中写入Avro对象容器文件数据。
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.
依赖项
~5.5–8MB
~144K SLoC