3个稳定版本
2.0.0 | 2020年1月11日 |
---|---|
1.0.1 | 2019年8月6日 |
1.0.0 | 2019年8月5日 |
#1672 in 数据库接口
25KB
282 行
elastictea
rettle ETL的通用填充倒灌配方crate。
数据结构
- FillEsArg: FillEsTea的配方参数
- FillEsTea: 用于在rettle壶中使用的填充配方的包装器,简化了其创建过程。
- PourEsArg: PourEsTea的配方参数
- PourEsTea: 用于在rettle壶中使用的倒灌配方的包装器,简化了其创建过程。
示例
#[derive(Serialize, Deserialize, Debug)]
struct ElasticTea {
name: Option<String>,
avg: Option<f32>,
}
impl Tea for ElasticTea {
fn as_any(&self) -> &dyn Any {
self
}
}
fn main() {
let es_client = Arc::new(EsClient::new("https://127.0.0.1:9200"));
let test_fill_esarg = FillEsArg::new(
"test-index1",
"_doc",
200,
json!({
"match_all": {}
}),
Arc::clone(&es_client),
);
let test_pour_esarg = PourEsArg::new(
"test-pour-index2",
"_doc",
Arc::clone(&es_client),
);
let brewery = Brewery::new(4, Instant::now());
let mut new_pot = Pot::new();
let fill_elastictea = FillEsTea::new::<ElasticTea>("elastic_tea_test", "test_index", test_fill_esarg);
let pour_elastictea = PourEsTea::new::<ElasticTea>("pour_elastic", test_pour_esarg);
new_pot = new_pot.add_source(fill_elastictea);
// Steep operations of choice
new_pot = new_pot.add_ingredient(pour_elastictea);
new_pot.brew(&brewery);
}
依赖项
~41MB
~1M SLoC