name字段做hash分区,怎么得到某个name所在全部分区数据

请问我用name字段做hash分区,怎么将对应name的分区数据都选择出来啊?

请先 登录 后评论

1 个回答

Boye

最高效的办法,在sql语句的where子句中,用partition函数加一个过滤,譬如这个name用hashBucket获取值为5, partition(name, 5), 这样只会选择哈希值为5的分区。

login(`admin,`123456)
n=10000
name="test"+string(rand(10, n))
x=rand(1.0, n)
t=table(name, x)
db=database("dfs://hashdb", HASH,  [SYMBOL, 5])
pt = db.createPartitionedTable(t, `pt, `name)
pt.append!(t)

pt=loadTable(db,`pt)
select * from pt where partition(name, hashBucket(`test5, 5))


请先 登录 后评论
  • 1 关注
  • 0 收藏,866 浏览
  • Alex 提出于 2022-03-03 10:36

相似问题