doris 创建表语句

doris 创建表语句

Apache Doris 是一个现代化的MPP(Massively Parallel Processing)分析型数据库,专为在线分析处理(OLAP)设计。创建表是Doris数据管理的基本操作之一。以下是一个基本的 CREATE TABLE 语句示例以及一些高级选项的说明,帮助你在Doris中创建表。

基本语法

CREATE TABLE [IF NOT EXISTS] db_name.table_name ( column1 data_type [NOT NULL | DEFAULT default_value] [COMMENT 'column comment'], column2 data_type [NOT NULL | DEFAULT default_value] [COMMENT 'column comment'], ... ) ENGINE=OLAP DISTRIBUTED BY HASH(column_name) BUCKETS bucket_number PROPERTIES ( "replication_num" = "replica_count", -- 其他可选属性 );

参数解释

  • IF NOT EXISTS:如果表已经存在,则不执行创建操作。
  • db_name.table_name:指定表的数据库名和表名。
  • column_name data_type:定义列的名称和数据类型。
    • 数据类型可以是常见的SQL数据类型,如INT, BIGINT, VARCHAR, DATE等。
    • 可以使用NOT NULL约束来确保列不为空。
    • 使用DEFAULT default_value为列设置默认值。
    • COMMENT 'column comment'用于添加列的注释。
  • ENGINE=OLAP:指定存储引擎为OLAP,这是Doris特有的。
  • DISTRIBUTED BY HASH(column_name):指定分布键和哈希方式。这决定了数据的物理存储分布。
  • BUCKETS bucket_number:指定桶的数量,即数据分片数。这个值会影响数据的并行处理能力。
  • PROPERTIES:设置表的额外属性。
    • "replication_num" = "replica_count":指定副本数量,以提高数据的可靠性和容错性。

示例

假设我们要创建一个名为user_behavior的表,用于记录用户行为数据,包含用户ID、商品ID、行为类型和时间戳四个字段。

CREATE TABLE IF NOT EXISTS example_db.user_behavior ( user_id BIGINT NOT NULL COMMENT '用户ID', item_id BIGINT NOT NULL COMMENT '商品ID', behavior_type VARCHAR(32) NOT NULL COMMENT '行为类型(浏览、购买等)', ts DATETIME NOT NULL COMMENT '时间戳' ) ENGINE=OLAP DISTRIBUTED BY HASH(user_id) BUCKETS 10 PROPERTIES ( "replication_num" = "3" );

在这个例子中:

  • 表位于example_db数据库中。
  • 包含四个字段:user_id, item_id, behavior_type, 和 ts。
  • 使用user_id作为分布键。
  • 将数据分成10个桶。
  • 设置每个数据的副本数量为3。

高级选项

除了基本语法外,Doris还支持许多其他高级选项,例如分区、索引、压缩算法等。这些可以根据具体需求进行配置。

分区示例

CREATE TABLE example_db.partitioned_table ( order_id BIGINT NOT NULL, order_date DATE NOT NULL, customer_id BIGINT, amount DECIMAL(10, 2) ) ENGINE=OLAP DISTRIBUTED BY HASH(order_id) BUCKETS 16 PARTITION BY RANGE(order_date) ( PARTITION p1 VALUES LESS THAN ("2023-01-01"), PARTITION p2 VALUES LESS THAN ("2024-01-01") ) PROPERTIES ( "replication_num" = "3" );

在这个例子中,我们根据order_date对表进行了范围分区。

希望这些信息能帮助你成功地在Doris中创建表!如果有更多问题或需要更详细的指导,请查阅Doris官方文档。