基础使用指南

基础使用指南

  • 创建数据库:create databases example_db;
  • 赋权:grant all on example_db to test;

在复合分区中:

  • 第一层称为Partition,即分区,用户可以指定某一维度列作为分区列(当前只支持整形和时间类型的列),并指定每个分区的取值范围.
  • 第二层称为Distribution,即分桶,用户可以指定一个或多个维度列和桶数对数据进行Hash分布.

单分区

建立一个名字为table1的逻辑表,分桶列为siteid,桶数为10.
这个表的schema如下:

  • siteid:类型为int,默认值是10;
  • citycode:类型是smallint
  • username:类型是varchar,最大长度为32,默认值为空字符串
  • pv:类型是bigint,默认值是0;这是一个指标列,Doris内部会对指标列做聚合操作,这个列的聚合方法是求和(SUM)

建表语句如下:

CREATE TABLE table1 
(
    siteid INT DEFAULT '10',
    citycode SMALLINT,
    username VARCHAR DEFAULT '',
    pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(siteid, citycode, username)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "1")

复合分区

建立一个名字为table2的逻辑表.
这个表的schema如下:

  • event_day:类型是date,无默认值
  • siteid:类型是int,默认值是10
  • citycode:类型是smallint
  • username:类型是varchar,最大长度为32,默认值为空字符串
  • pv:类型是bigint,默认值是0;这是一个指标列,Doris内部会对指标列做聚合操作,这个列的聚合方法是求和(SUM)

使用event_day列作为分区列,建立3个分区:p201706,p201707,p201708

  • p201706:范围为 [最小值, 2017-07-01)
  • p201707:范围为 [2017-07-01, 2017-08-01)
  • p201708:范围为 [2017-08-01, 2017-09-01)

每个分区使用siteid进行Hash分桶,桶数为10
建表语句如下:

CREATE TABLE table2 
(
    event_day DATE,
    siteid INT DEFAULT '10',
    citycode SMALLINT,
    username VARCHAR DEFAULT '',
    pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(event_day, siteid, citycode, username)
PARTITION BY RANGE(event_day)
(
    PARTITION p201706 VALUES less than ('2017-07-01'),
    PARTITION p201707 VALUES LESS THAN ('2017-08-01'),
    PARTITION p201708 VALUES LESS THAN ('2017-09-01')
)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "1")

注意事项:

  1. 上述表通过设置replication_num建的都是单副本表,Doris建议用户采用默认的3副本设置,以保证高可用.
  2. 可以对Table增加上卷表(Rollup)以提高查询性能,这部分可以参见高级使用指南关于Rollup的描述.
  3. 表的列Null属性默认为true,会对查询性能有一定影响.
  4. 可以动态修改表的schema.
  5. 数据导入可以导入指定的Partition.
  6. 可以对复合分区表动态的增删分区.

导入数据

流式导入

流式导入通过HTTP协议向Doris传输数据,可以不依赖其他系统或组件直接导入本地数据.
注意事项:

  1. 采用流式导入建议文件大小限制在10GB以内,过大的文件会导致失败重试代价变大.
  2. 每一批导入数据都需要一个Label,Label最好是一个和一批数据有关的字符串,方便阅读和管理.Doris给予Label保证在一个Database内,同一批数据只可导入成功一次.失败任务的Label可以重用.
  3. 流式导入是同步命令.命令返回成功则表示数据已经导入,返回失败表示这批数据没有导入.

Broker导入

Broker导入通过部署的Broker进程,读取外部存储上的数据进行导入.
Broker导入是异步命令,导入是否成功需要通过show load查看,返回结果中,State字段为FINISHED则表示导入成功.异步的导入任务在结束前可以取消:CANCEL LOAD WHERE LABEL = ""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值