1 个不稳定版本
0.1.0 | 2022年3月12日 |
---|
#7 在 #bigtable
40KB
765 行
Datafusion-Bigtable
Apache Arrow Datafusion 的 Bigtable 数据源
在 Bigtable 上运行 SQL
此软件包实现了 Datafusion 的 Bigtable 数据源和 Executor。它基于 gRPC 客户端 tonic 构建。
快速入门
let bigtable_datasource = BigtableDataSource::new(
"emulator".to_owned(), // project
"dev".to_owned(), // instance
"weather_balloons".to_owned(), // table
"measurements".to_owned(), // column family
vec!["_row_key".to_owned()], // table_partition_cols
"#".to_owned(), // table_partition_separator
vec![Field::new("pressure", DataType::Utf8, false)], // qualifiers
true, // only_read_latest
).await.unwrap();
let mut ctx = ExecutionContext::new();
ctx.register_table("weather_balloons", Arc::new(bigtable_datasource)).unwrap();
ctx.sql("SELECT \"_row_key\", pressure, \"_timestamp\" FROM weather_balloons where \"_row_key\" = 'us-west2#3698#2021-03-05-1200'").await?.collect().await?;
路线图
Bigtable
- ✅ UTF8 字符串
- ✅ 64 位大端有符号整数
SQL
- ✅ 通过
"_row_key" =
选择 - ✅ 通过
"_row_key" IN
选择 - ✅ 通过
"_row_key" BETWEEN
选择 - ✅ 通过复合行键
=
选择 - ✅ 通过复合行键
IN
选择 - ✅ 通过复合行键
BETWEEN
选择(仅支持最后一个表分区列)
通用
注意:datafusion-bigtable 为 Datafusion 提供物理 Executor。任何聚合、分组、连接都由 Datafusion 实现。
依赖项
~48–64MB
~1.5M SLoC