Clickhouse 插入随机数据

Clickhouse 插入随机数据

1.为什么要随机数据

在测试或预生产环境中,我们需要数据来进行测试自己的sql等逻辑是否正确,需要使用数据,而从现网环境中拉取大量的数据又显得不切实际,所以我们需要在数据库中根据一定规则造出类似于现网数据的内容,供测试使用,下面是各种随机数类型的制造方式

2.不同数据类型的制造方式

2.1 String

select substring(reverse(base64Encode(randomString(10))), 3);

在这里插入图片描述

2.2 浮点型

select toDecimal64(rand(now()) / rand(0), 3);

在这里插入图片描述

2.3 整形

select rand();

在这里插入图片描述
如果想在一定范围内取值,可以使用

select rand()%78;

在这里插入图片描述

2.4 时间字段

本例展示的是规整后的时间字段,如下

select (202210*10000+(toInt32(substring(toString(rand()),1,3))%7+19)*100+(toInt32(substring(toString(rand()),1,3))%24))*100 as time;

在这里插入图片描述

2.5 随机生成ip地址

select IPv4NumToString(rand());

在这里插入图片描述

2.6 关联资源随机取值

如果想在一定数据范围内取值,我们可以创建资源表,然后随机取一列中的值
假设资源表 tag_name 中name一列,随机取值

Select name From tag_name Order By Rand() Limit 1 ;

在这里插入图片描述

2.7 指定插入的条数
insert into testdb.test_table 
select 
(((202210 * 10000) + (((toInt32(substring(toString(rand()), 1, 3)) % 7) + 19) * 100)) + (toInt32(substring(toString(rand()), 1, 3)) % 24)) * 100 AS time,
rand()    data1,
round(rand()/300000,0)    num, 
substring(reverse(base64Encode(randomString(10))), 3) host 
FROM numbers(100000); 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值