ClickHouse SQL 语法基础极简教程 + bitmap 位图数据类型的使用实例

Posted 东海陈光剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClickHouse SQL 语法基础极简教程 + bitmap 位图数据类型的使用实例相关的知识,希望对你有一定的参考价值。

ClickHouse SQL 语法基础极简教程 + bitmap 位图数据类型的使用实例

查看所有数据库

SELECT *
FROM system.databases;

创建数据库

create database circle_db engine=Ordinary comment 'circle_db';

建表:分区键 partition by、主键索引 order by

create table circle_db.bitmap_circle
(
    row_key            String   default -1,
    field_value_string String   default -1,
    field_value_long   Int64    default -1,
    field_value_double Float64  default -1,
    object_id_map      AggregateFunction(groupBitmap, UInt64),
    p_date             DateTime default now(),
    table_code         String   default -1,
    field_code         String   default -1
)
    engine = AggregatingMergeTree()
        partition by (p_date, table_code, field_code)
        order by (row_key, field_value_string, field_value_long, field_value_double)
        SETTINGS index_granularity = 128;
-- 由于标签的行数不会太多,将索引粒度调整适量大小(默认8192)

创建 base_user 表结构

create table if not exists circle_db.base_user
(
    id          UInt64,
    name        String,
    country     String,
    city        String,
    tag         UInt32,
    create_time DateTime
) engine = MergeTree
      partition by toYYYYMM(create_time)
      order by id
;

插入用户样例数据

insert into circle_db.base_user
values (1, 'Name1', '中国', '重庆', 10001, now()),
       (2, 'Name2', '中国', '重庆', 10002, now()),
       (3, 'Name3', '中国', '重庆', 10003, now()),
       (4, 'Name4', '中国', '重庆', 10004, now()),
       (5, 'Name5', '中国', '重庆', 10005, now()),
       (6, 'Name6', '中国', '重庆', 10006, now()),
       (7, 'Name7', '中国', '重庆', 10007, now()),
       (8, 'Name8', '中国', '重庆', 10008, now()),
       (9, 'Name9', '中国', '重庆', 10009, now()),
       (10, 'Name10', '中国', '重庆', 10010, now()),
       (11, 'Name11', '中国', '重庆', 10011, now()),
       (12, 'Name12', '中国', '重庆', 10012, now()),
       (13, 'Name13', '中国', '重庆', 10013, now()),
       (14, 'Name14', '中国', '重庆', 10014, now()),
       (15, 'Name15', '中国', '重庆', 10015, now()),
       (16, 'Name16', '中国', '重庆', 10016, now()),
       (17, 'Name17', '中国', '重庆', 10017, now()),
       (18, 'Name18', '中国', '重庆', 10018, now()),
       (19, 'Name19', '中国', '重庆', 10019, now()),
       (20, 'Name20', '中国', '重庆', 10020, now()),
       (21, 'Name21', '中国', '重庆', 10021, now()),
       (22, 'Name22', '中国', '重庆', 10022, now()),
       (23, 'Name23', '中国', '重庆', 10023, now()),
       (24, 'Name24', '中国', '重庆', 10024, now()),
       (25, 'Name25', '中国', '重庆', 10025, now()),
       (26, 'Name26', '中国', '重庆', 10026, now()),
       (27, 'Name27', '中国', '重庆', 10027, now()),
       (28, 'Name28', '中国', '重庆', 10028, now()),
       (29, 'Name29', '中国', '重庆', 10029, now()),
       (30, 'Name30', '中国', '重庆', 10030, now()),
       (31, 'Name31', '中国', '重庆', 10031, now()),
       (32, 'Name32', '中国', '重庆', 10032, now()),
       (33, 'Name33', '中国', '重庆', 10033, now()),
       (34, 'Name34', '中国', '重庆', 10034, now()),
       (35, 'Name35', '中国', '重庆', 10035, now()),
       (36, 'Name36', '中国', '重庆', 10036, now()),
       (37, 'Name37', '中国', '重庆', 10037, now()),
       (38, 'Name38', '中国', '重庆', 10038, now()),
       (39, 'Name39', '中国', '重庆', 10039, now()),
       (40, 'Name40', '中国', '重庆', 10040, now()),
       (41, 'Name41', '中国', '重庆', 10041, now()),
       (42, 'Name42', '中国', '重庆', 10042, now()),
       (43, 'Name43', '中国', '重庆', 10043, now()),
       (44, 'Name44', '中国', '重庆', 10044, now()),
       (45, 'Name45', '中国', '重庆', 10045, now()),
       (46, 'Name46', '中国', '重庆', 10046, now()),
       (47, 'Name47', '中国', '重庆', 10047, now()),
       (48, 'Name48', '中国', '重庆', 10048, now()),
       (49, 'Name49', '中国', '重庆', 10049, now()),
       (50, 'Name50', '中国', '重庆', 10050, now()),
       (51, 'Name51', '中国', '重庆', 10051, now()),
       (52, 'Name52', '中国', '重庆', 10052, now()),
       (53, 'Name53', '中国', '重庆', 10053, now()),
       (54, 'Name54', '中国', '重庆', 10054, now()),
       (55, 'Name55', '中国', '重庆', 10055, now()),
       (56, 'Name56', '中国', '重庆', 10056, now()),
       (57, 'Name57', '中国', '重庆', 10057, now()),
       (58, 'Name58', '中国', '重庆', 10058, now()),
       (59, 'Name59', '中国', '重庆', 10059, now()),
       (60, 'Name60', '中国', '重庆', 10060, now()),
       (61, 'Name61', '中国', '重庆', 10061, now()),
       (62, 'Name62', '中国', '重庆', 10062, now()),
       (63, 'Name63', '中国', '重庆', 10063, now()),
       (64, 'Name64', '中国', '重庆', 10064, now()),
       (65, 'Name65', '中国', '重庆', 10065, now()),
       (66, 'Name66', '中国', '重庆', 10066, now()),
       (67, 'Name67', '中国', '重庆', 10067, now()),
       (68, 'Name68', '中国', '重庆', 10068, now()),
       (69, 'Name69', '中国', '重庆', 10069, now()),
       (70, 'Name70', '中国', '重庆', 10070, now()),
       (71, 'Name71', '中国', '重庆', 10071, now()),
       (72, 'Name72', '中国', '重庆', 10072, now()),
       (73, 'Name73', '中国', '重庆', 10073, now()),
       (74, 'Name74', '中国', '重庆', 10074, now()),
       (75, 'Name75', '中国', '重庆', 10075, now()),
       (76, 'Name76', '中国', '重庆', 10076, now()),
       (77, 'Name77', '中国', '重庆', 10077, now()),
       (78, 'Name78', '中国', '重庆', 10078, now()),
       (79, 'Name79', '中国', '重庆', 10079, now()),
       (80, 'Name80', '中国', '重庆', 10080, now()),
       (81, 'Name81', '中国', '重庆', 10081, now()),
       (82, 'Name82', '中国', '重庆', 10082, now()),
       (83, 'Name83', '中国', '重庆', 10083, now()),
       (84, 'Name84', '中国', '重庆', 10084, now()),
       (85, 'Name85', '中国', '重庆', 10085, now()),
       (86, 'Name86', '中国', '重庆', 10086, now()),
       (87, 'Name87', '中国', '重庆', 10087, now()),
       (88, 'Name88', '中国', '重庆', 10088, now()),
       (89, 'Name89', '中国', '重庆', 10089, now()),
       (90, 'Name90', '中国', '重庆', 10090, now()),
       (91, 'Name91', '中国', '重庆', 10091, now()),
       (92, 'Name92', '中国', '重庆', 10092, now()),
       (93, 'Name93', '中国', '重庆', 10093, now()),
       (94, 'Name94', '中国', '重庆', 10094, now()),
       (95, 'Name95', '中国', '重庆', 10095, now()),
       (96, 'Name96', '中国', '重庆', 10096, now()),
       (97, 'Name97', '中国', '重庆', 10097, now()),
       (98, 'Name98', '中国', '重庆', 10098, now()),
       (99, 'Name99', '中国', '重庆', 10099, now()),
       (100, 'Name100', '中国', '重庆', 10100, now()),
       (101, 'Name101', '中国', '重庆', 10101, now()),
       (102, 'Name102', '中国', '重庆', 10102, now()),
       (103, 'Name103', '中国', '重庆', 10103, now()),
       (104, 'Name104', '中国', '重庆', 10104, now()),
       (105, 'Name105', '中国', '重庆', 10105, now()),
       (106, 'Name106', '中国', '重庆', 10106, now()),
       (107, 'Name107', '中国', '重庆', 10107, now()),
       (108, 'Name108', '中国', '重庆', 10108, now()),
       (109, 'Name109', '中国', '重庆', 10109, now()),
       (110, 'Name110', '中国', '重庆', 10110, now()),
       (111, 'Name111', '中国', '重庆', 10111, now()),
       (112, 'Name112', '中国', '重庆', 10112, now()),
       (113, 'Name113', '中国', '重庆', 10113, now()),
       (114, 'Name114', '中国', '重庆', 10114, now()),
       (115, 'Name115', '中国', '重庆', 10115, now()),
       (116, 'Name116', '中国', '重庆', 10116, now()),
       (117, 'Name117', '中国', '重庆', 10117, now()),
       (118, 'Name118', '中国', '重庆', 10118, now()),
       (119, 'Name119', '中国', '重庆', 10119, now()),
       (120, 'Name120', '中国', '重庆', 10120, now()),
       (121, 'Name121', '中国', '重庆', 10121, now()),
       (122, 'Name122', '中国', '重庆', 10122, now()),
       (123, 'Name123', '中国', '重庆', 10123, now()),
       (124, 'Name124', '中国', '重庆', 10124, now()),
       (125, 'Name125', '中国', '重庆', 10125, now()),
       (126, 'Name126', '中国', '重庆', 10126, now()),
       (127, 'Name127', '中国', '重庆', 10127, now()),
       (128, 'Name128', '中国', '重庆', 10128, now()),
       (129, 'Name129', '中国', '重庆', 10129, now()),
       (130, 'Name130', '中国', '重庆', 10130, now()),
       (131, 'Name131', '中国', '重庆', 10131, now()),
       (132, 'Name132', '中国', '重庆', 10132, now()),
       (133, 'Name133', '中国', '重庆', 10133, now()),
       (134, 'Name134', '中国', '重庆', 10134, now()),
       (135, 'Name135', '中国', '重庆', 10135, now()),
       (136, 'Name136', '中国', '重庆', 10136, now()),
       (137, 'Name137', '中国', '重庆', 10137, now()),
       (138, 'Name138', '中国', '重庆', 10138, now()),
       (139, 'Name139', '中国', '重庆', 10139, now()),
       (140, 'Name140', '中国', '重庆', 10140, now()),
       (141, 'Name141', '中国', '重庆', 10141, now()),
       (142, 'Name142', '中国', '重庆', 10142, now()),
       (143, 'Name143', '中国', '重庆', 10143, now()),
       (144, 'Name144', '中国', '重庆', 10144, now()),
       (145, 'Name145', '中国', '重庆', 10145, now()),
       (146, 'Name146', '中国', '重庆', 10146, now()),
       (147, 'Name147', '中国', '重庆', 10147, now()),
       (148, 'Name148', '中国', '重庆', 10148, now()),
       (149, 'Name149', '中国', '重庆', 10149, now()),
       (150, 'Name150', '中国', '重庆', 10150, now()),
       (151, 'Name151', '中国', '重庆', 10151, now()),
       (152, 'Name152', '中国', '重庆', 10152, now()),
       (153, 'Name153', '中国', '重庆', 10153, now()),
       (154, 'Name154', '中国', '重庆', 10154, now()),
       (155, 'Name155', '中国', '重庆', 10155, now()),
       (156, 'Name156', '中国', '重庆', 10156, now()),
       (157, 'Name157', '中国', '重庆', 10157, now()),
       (158, 'Name158', '中国', '重庆', 10158, now()),
       (159, 'Name159', '中国', '重庆', 10159, now()),
       (160, 'Name160', '中国', '重庆', 10160, now()),
       (161, 'Name161', '中国', '重庆', 10161, now()),
       (162, 'Name162', '中国', '重庆', 10162, now()),
       (163, 'Name163', '中国', '重庆', 10163, now()),
       (164, 'Name164', '中国', '重庆', 10164, now()),
       (165, 'Name165', '中国', '重庆', 10165, now()),
       (166, 'Name166', '中国', '重庆', 10166, now()),
       (167, 'Name167', '中国', '重庆', 10167, now()),
       (168, 'Name168', '中国', '重庆', 10168, now()),
       (169, 'Name169', '中国', '重庆', 10169, now()),
       (170, 'Name170', '中国', '重庆', 10170, now()),
       (171, 'Name171', '中国', '重庆', 10171, now()),
       (172, 'Name172', '中国', '重庆', 10172, now()),
       (173, 'Name173', '中国', '重庆', 10173, now()),
       (174, 'Name174', '中国', '重庆', 10174, now()),
       (175, 'Name175', '中国', '重庆', 10175, now()),
       (176, 'Name176', '中国', '重庆', 10176, now()),
       (177, 'Name177', '中国', '重庆', 10177, now()),
       (178, 'Name178', '中国', '重庆', 10178, now()),
       (179, 'Name179', '中国', '重庆', 10179, now()),
       (180, 'Name180', '中国', '重庆', 10180, now()),
       (181, 'Name181', '中国', '重庆', 10181, now()),
       (182, 'Name182', '中国', '重庆', 10182, now()),
       (183, 'Name183', '中国', '重庆', 10183, now()),
       (184, 'Name184', '中国', '重庆', 10184, now()),
       (185, 'Name185', '中国', '重庆', 10185, now()),
       (186, 'Name186', '中国', '重庆', 10186, now()),
       (187, 'Name187', '中国', '重庆', 10187, now()),
       (188, 'Name188', '中国', '重庆', 10188, now()),
       (189, 'Name189', '中国', '重庆', 10189, now()),
       (190, 'Name190', '中国', '重庆', 10190, now()),
       (191, 'Name191', '中国', '重庆', 10191, now()),
       (192, 'Name192', '中国', '重庆', 10192, now()),
       (193, 'Name193', '中国', '重庆', 10193, now()),
       (194, 'Name194', '中国', '重庆', 10194, now()),
       (195, 'Name195', '中国', '重庆', 10195, now()),
       (196, 'Name196', '中国', '重庆', 10196, now()),
       (197, 'Name197', '中国', '重庆', 10197, now()),
       (198, 'Name198', '中国', '重庆', 10198, now()),
       (199, 'Name199', '中国', '重庆', 10199, now()),
       (200, 'Name200', '中国', '重庆', 10200, now()),
       (201, 'Name201', '中国', '重庆', 10201, now()),
       (202, 'Name202', '中国', '重庆', 10202, now()),
       (203, 'Name203', '中国', '重庆', 10203, now()),
       (204, 'Name204', '中国', '重庆', 10204, now()),
       (205, 'Name205', '中国', '重庆', 10205, now()),
       (206, 'Name206', '中国', '重庆', 10206, now()),
       (207, 'Name207', '中国', '重庆', 10207, now()),
       (208, 'Name208', '中国', '重庆', 10208, now()),
       (209, 'Name209', '中国', '重庆', 10209, now()),
       (210, 'Name210', '中国', '重庆', 10210, now()),
       (211, 'Name211', '中国', '重庆', 10211, now()),
       (212, 'Name212', '中国', '重庆', 10212, now()),
       (213, 'Name213', '中国', '重庆', 10213, now()),
       (214, 'Name214', '中国', '重庆', 10214, now()),
       (215, 'Name215', '中国', '重庆', 10215, now()),
       (216, 'Name216', '中国', '重庆', 10216, now()),
       (217, 'Name217', '中国', '重庆', 10217, now()),
       (218, 'Name218', '中国', '重庆', 10218, now()),
       (219, 'Name219', '中国', '重庆', 10219, now()),
       (220, 'Name220', '中国', '重庆', 10220, now()),
       (221, 'Name221', '中国', '重庆', 10221, now()),
       (222, 'Name222', '中国', '重庆', 10222, now()),
       (223, 'Name223', '中国', '重庆', 10223, now()),
       (224, 'Name224', '中国', '重庆', 10224, now()),
       (225, 'Name225', '中国', '重庆', 10225, now()),
       (226, 'Name226', '中国', '重庆', 10226, now()),
       (227, 'Name227', '中国', '重庆', 10227, now()),
       (228, 'Name228', '中国', '重庆', 10228, now()),
       (229, 'Name229', '中国', '重庆', 10229, now()),
       (230, 'Name230', '中国', '重庆', 10230, now()),
       (231, 'Name231', '中国', '重庆', 10231, now()),
       (232, 'Name232', '中国', '重庆', 10232, now()),
       (233, 'Name233', '中国', '重庆', 10233, now()),
       (234, 'Name234', '中国', '重庆', 10234, now()),
       (235, 'Name235', '中国', '重庆', 10235, now()),
       (236, 'Name236', '中国', '重庆', 10236, now()),
       (237, 'Name237', '中国', '重庆', 10237, now()),
       (238, 'Name238', '中国', '重庆', 10238, now()),
       (239, 'Name239', '中国', '重庆', 10239, now()),
       (240, 'Name240', '中国', '重庆', 10240, now()),
       (241, 'Name241', '中国', '重庆', 10241, now()),
       (242, 'Name242', '中国', '重庆', 10242, now()),
       (243, 'Name243', '中国', '重庆', 10243, now()),
       (244, 'Name244', '中国', '重庆', 10244, now()),
       (245, 'Name245', '中国', '重庆', 10245, now()),
       (246, 'Name246', '中国', '重庆', 10246, now()),
       (247, 'Name247', '中国', '重庆', 10247, now()),
       (248, 'Name248', '中国', '重庆', 10248, now()),
       (249, 'Name249', '中国', '重庆', 10249, now()),
       (250, 'Name250', '中国', '重庆', 10250, now()),
       (251, 'Name251', '中国', '重庆', 10251, now()),
       (252, 'Name252', '中国', '重庆', 10252, now()),
       (253, 'Name253', '中国', '重庆', 10253, now()),
       (254, 'Name254', '中国', '重庆', 10254, now()),
       (255, 'Name255', '中国', '重庆', 10255, now()),
       (256, 'Name256', '中国', '重庆', 10256, now()),
       (257, 'Name257', '中国', '重庆', 10257, now()),
       (258, 'Name258', '中国', '重庆', 10258, now()),
       (259, 'Name259', '中国', '重庆', 10259, now()),
       (260, 'Name260', '中国', '重庆', 10260, now()),
       (261, 'Name261', '中国', '重庆', 10261, now()),
       (262, 'Name262', '中国', '重庆', 10262, now()),
       (263, 'Name263', '中国', '重庆', 10263, now()),
       (264, 'Name264', '中国', '重庆', 10264, now()),
       (265, 'Name265', '中国', '重庆', 10265, now()),
       (266, 'Name266', '中国', '重庆', 10266, now()),
       (267, 'Name267', '中国', '重庆', 10267, now()),
       (268, 'Name268', '中国', '重庆', 10268, now()),
       (269, 'Name269', '中国', '重庆', 10269, now()),
       (270, 'Name270', '中国', '重庆', 10270, now()),
       (271, 'Name271', '中国', '重庆', 10271, now()),
       (272, 'Name272', '中国', '重庆', 10272, now()),
       (273, 'Name273', '中国', '重庆', 10273, now()),
       (274, 'Name274', '中国', '重庆', 10274, now()),
       (275, 'Name275', '中国', '重庆', 10275, now()),
       (276, 'Name276', '中国', '重庆', 10276, now()),
       (277, 'Name277', '中国', '重庆', 10277, now()),
       (278, 'Name278', '中国', '重庆', 10278, now()),
       (279, 'Name279', '中国', '重庆', 10279, now()),
       (280, 'Name280', '中国', '重庆', 10280, now()),
       (281, 'Name281', '中国', '重庆', 10281, now()),
       (282, 'Name282', '中国', '重庆', 10282, now()),
       (283, 'Name283', '中国', '重庆', 10283, now()),
       (284, 'Name284', '中国', '重庆', 10284, now()),
       (285, 'Name285', '中国', '重庆', 10285, now()),
       (286, 'Name286', '中国', '重庆', 10286, now()),
       (287, 'Name287', '中国', '重庆', 10287, now()),
       (288, 'Name288', '中国', '重庆', 10288, now()),
       (289, 'Name289', '中国', '重庆', 10289, now()),
       (290, 'Name290', '中国', '重庆', 10290, now()),
       (291, 'Name291', '中国', '重庆', 10291, now()),
       (292, 'Name292', '中国', '重庆', 10292, now()),
       (293, 'Name293', '中国', '重庆', 10293, now()),
       (294, 'Name294', '中国', '重庆', 10294, now()),
       (295, 'Name295', '中国', '重庆', 10295, now()),
       (296, 'Name296', '中国', '重庆', 10296, now()),
       (297, 'Name297', '中国', '重庆', 10297, now()),
       (298, 'Name298', '中国', '重庆', 10298, now()),
       (299, 'Name299', '中国', '重庆', 10299, now()),
       (300, 'Name300', '中国', '重庆', 10300, now()),
       (301, 'Name301', '中国', '重庆', 10301, now()),
       (302, 'Name302', '中国', '重庆', 10302, now()),
       (303, 'Name303', '中国', '重庆', 10303, now()),
       (304, 'Name304', '中国', '重庆', 10304, now()),
       (305, 'Name305', '中国', '重庆', 10305, now()),
       (306, 'Name306', '中国', '重庆', 10306, now()),
       (307, 'Name307', '中国', '重庆', 10307, now()),
       (308, 'Name308', '中国', '重庆', 10308, now()),
       (309, 'Name309', '中国', '重庆', 10309, now()),
       (310, 'Name310', '中国', '重庆', 10310, now()),
       (311, 'Name311', '中国', '重庆', 10311, now()),
       (312, 'Name312', '中国', '重庆', 10312, now()),
       (313, 'Name313', '中国', '重庆', 10313, now()),
       (314, 'Name314', '中国', '重庆', 10314, now()),
       (315, 'Name315', '中国', '重庆', 10315, now()),
       (316, 'Name316', '中国', '重庆', 10316, now()),
       (317, 'Name317', '中国', '重庆', 10317, now()),
       (318, 'Name318', '中国', '重庆', 10318, now()),
       (319, 'Name319', '中国', '重庆', 10319, now()),
       (320, 'Name320', '中国', '重庆', 10320, now()),
       (321, 'Name321', '中国', '重庆', 10321, now()),
       (322, 'Name322', '中国', '重庆', 10322, now()),
       (323, 'Name323', '中国', '重庆', 10323, now()),
       (324, 'Name324', '中国', '重庆', 10324, now()),
       (325, 'Name325', '中国', '重庆', 10325, now()),
       (326, 'Name326', '中国', '重庆', 10326, now()),
       (327, 'Name327', '中国', '重庆', 10327, now()),
       (328, 'Name328', '中国', '重庆', 10328, now()),
       (329, 'Name329', '中国', '重庆', 10329, now()),
       (330, 'Name330', '中国', '重庆', 10330, now()),
       (331, 'Name331', '中国', '重庆', 10331, now()),
       (332, 'Name332', '中国', '重庆', 10332, now()),
       (333, 'Name333', '中国', '重庆', 10333, now()),
       (334, 'Name334', '中国', '重庆', 10334, now()),
       (335, 'Name335', '中国', '重庆', 10335, now()),
       (336, 'Name336', '中国', '重庆', 10336, now()),
       (337, 'Name337', '中国', '重庆', 10337, now()),
       (338, 'Name338', '中国', '重庆', 10338, now()),
       (339, 'Name339', '中国', '重庆', 10339, now()),
       (340, 'Name340', '中国', '重庆', 10340, now()),
       (341, 'Name341', '中国', '重庆', 10341, now()),
       (342, 'Name342', '中国', '重庆', 10342, now()),
       (343, 'Name343', '中国', '重庆', 10343, now()),
       (344, 'Name344', '中国', '重庆', 10344, now()),
       (345, 'Name345', '中国', '重庆', 10345, now()),
       (346, 'Name346', '中国', '重庆', 10346, now()),
       (347, 'Name347', '中国', '重庆', 10347, now()),
       (348, 'Name348', '中国', '重庆', 10348, now()),
       (349, 'Name349', '中国', '重庆', 10349, now()),
       (350, 'Name350', '中国', '重庆', 10350, now()),
       (351, 'Name351', '中国', '重庆', 10351, now()),
       (352, 'Name352', '中国', '重庆', 10352, now()),
       (353, 'Name353', '中国', '重庆', 10353, now()),
       (354, 'Name354', '中国', '重庆', 10354, now()),
       (355, 'Name355', '中国', '重庆', 10355, now()),
       (356, 'Name356', '中国', '重庆', 10356, now()),
       (357, 'Name357', '中国', '重庆', 10357, now()),
       (358, 'Name358', '中国', '重庆', 10358, now()),
       (359, 'Name359', '中国', '重庆', 10359, now()),
       (360, 'Name360', '中国', '重庆', 10360, now()),
       (361, 'Name361', '中国', '重庆', 10361, now()),
       (362, 'Name362', '中国', '重庆', 10362, now()),
       (363, 'Name363', '中国', '重庆', 10363, now()),
       (364, 'Name364', '中国', '重庆', 10364, now()),
       (365, 'Name365', '中国', '重庆', 10365, now()),
       (366, 'Name366', '中国', '重庆', 10366, now()),
       (367, 'Name367', '中国', '重庆', 10367, now()),
       (368, 'Name368', '中国', '重庆', 10368, now()),
       (369, 'Name369', '中国', '重庆', 10369, now()),
       (370, 'Name370', '中国', '重庆', 10370, now()),
       (371, 'Name371', '中国', '重庆', 10371, now()),
       (372, 'Name372', '中国', '重庆', 10372, now()),
       (373, 'Name373', '中国', '重庆', 10373, now()),
       (374, 'Name374', '中国', '重庆', 10374, now()),
       (375, 'Name375', '中国', '重庆', 10375, now()),
       (376, 'Name376', '中国', '重庆', 10376, now()),
       (377, 'Name377', '中国', '重庆', 10377, now()),
       (378, 'Name378', '中国', '重庆', 10378, now()),
       (379, 'Name379', '中国', '重庆', 10379, now()),
       (380, 'Name380', '中国', '重庆', 10380, now()),
       (381, 'Name381', '中国', '重庆', 10381, now()),
       (382, 'Name382', '中国', '重庆', 10382, now()),
       (383, 'Name383', '中国', '重庆', 10383, now()),
       (384, 'Name384', '中国', '重庆', 10384, now()),
       (385, 'Name385', '中国', '重庆', 10385, now()),
       (386, 'Name386', '中国', '重庆', 10386, now()),
       (387, 'Name387', '中国', '重庆', 10387, now()),
       (388, 'Name388', '中国', '重庆', 10388, now()),
       (389, 'Name389', '中国', '重庆', 10389, now()),
       (390, 'Name390', '中国', '重庆', 10390, now()),
       (391, 'Name391', '中国', '重庆', 10391, now()),
       (392, 'Name392', '中国', '重庆', 10392, now()),
       (393, 'Name393', '中国', '重庆', 10393, now()),
       (394, 'Name394', '中国', '重庆', 10394, now()),
       (395, 'Name395', '中国', '重庆', 10395, now()),
       (396, 'Name396', '中国', '重庆', 10396, now()),
       (397, 'Name397', '中国', '重庆', 10397, now()),
       (398, 'Name398', '中国', '重庆', 10398, now()),
       (399, 'Name399', '中国', '重庆', 10399, now()),
       (400, 'Name400', '中国', '重庆', 10400, now()),
       (401, 'Name401', '中国', '重庆', 10401, now()),
       (402, 'Name402', '中国', '重庆', 10402, now()),
       (403, 'Name403', '中国', '重庆', 10403, now()),
       (404, 'Name404', '中国', '重庆', 10404, now()),
       (405, 'Name405', '中国', '重庆', 10405, now()),
       (406, 'Name406', '中国', '重庆', 10406, now()),
       (407, 'Name407', '中国', '重庆', 10407, now()),
       (408, 'Name408', '中国', '重庆', 10408, now()),
       (409, 'Name409', '中国', '重庆', 10409, now()),
       (410, 'Name410', '中国', '重庆', 10410, now()),
       (411, 'Name411', '中国', '重庆', 10411, now()),
       (412, 'Name412', '中国', '重庆', 10412, now()),
       (413, 'Name413', '中国', '重庆', 10413, now()),
       (414, 'Name414', '中国', '重庆', 10414, now()),
       (415, 'Name415', '中国', '重庆', 10415, now()),
       (416, 'Name416', '中国', '重庆', 10416, now()),
       (417, 'Name417', '中国', '重庆', 10417, now()),
       (418, 'Name418', '中国', '重庆', 10418, now()),
       (419, 'Name419', '中国', '重庆', 10419, now()),
       (420, 'Name420', '中国', '重庆', 10420, now()),
       (421, 'Name421', '中国', '重庆', 10421, now()),
       (422, 'Name422', '中国', '重庆', 10422, now()),
       (423, 'Name423', '中国', '重庆', 10423, now()),
       (424, 'Name424', '中国', '重庆', 10424, now()),
       (425, 'Name425', '中国', '重庆', 10425, now()),
       (426, 'Name426', '中国', '重庆', 10426, now()),
       (427, 'Name427', '中国', '重庆', 10427, now()),
       (428, 'Name428', '中国', '重庆', 10428, now()),
       (429, 'Name429', '中国', '重庆', 10429, now()),
       (430, 'Name430', '中国', '重庆', 10430, now()),
       (431, 'Name431', '中国', '重庆', 10431, now()),
       (432, 'Name432', '中国', '重庆', 10432, now()),
       (433, 'Name433', '中国', '重庆', 10433, now()),
       (434, 'Name434', '中国', '重庆', 10434, now()),
       (435, 'Name435', '中国', '重庆', 10435, now()),
       (436, 'Name436', '中国', '重庆', 10436, now()),
       (437, 'Name437', '中国', '重庆', 10437, now()),
       (438, 'Name438', '中国', '重庆', 10438, now()),
       (439, 'Name439', '中国', '重庆', 10439, now()),
       (440, 'Name440', '中国', '重庆', 10440, now()),
       (441, 'Name441', '中国', '重庆', 10441, now()),
       (442, 'Name442', '中国', '重庆', 10442, now()),
       (443, 'Name443', '中国', '重庆', 10443, now()),
       (444, 'Name444', '中国', '重庆', 10444, now()),
       (445, 'Name445', '中国', '重庆', 10445, now()),
       (446, 'Name446', '中国', '重庆', 10446, now()),
       (447, 'Name447', '中国', '重庆', 10447, now()),
       (448, 'Name448', '中国', '重庆', 10448, now()),
       (449, 'Name449', '中国', '重庆', 10449, now()),
       (450, 'Name450', '中国', '重庆', 10450, now()),
       (451, 'Name451', '中国', '重庆', 10451, now()),
       (452, 'Name452', '中国', '重庆', 10452, now()),
       (453, 'Name453', '中国', '重庆', 10453, now()),
       (454, 'Name454', '中国', '重庆', 10454, now()),
       (455, 'Name455', '中国', '重庆', 10455, now()),
       (456, 'Name456', '中国', '重庆', 10456, now()),
       (457, 'Name457', '中国', '重庆', 10457, now()),
       (458, 'Name458', '中国', '重庆', 10458, now()),
       (459, 'Name459', '中国', '重庆', 10459, now()),
       (460, 'Name460', '中国', '重庆', 10460, now()),
       (461, 'Name461', '中国', '重庆', 10461, now()),
       (462, 'Name462', '中国', '重庆', 10462, now()),
       (463, 'Name463', '中国', '重庆', 10463, now()),
       (464, 'Name464', '中国', '重庆', 10464, now()),
       (465, 'Name465', '中国', '重庆', 10465, now()),
       (466, 'Name466', '中国', '重庆', 10466, now()),
       (467, 'Name467', '中国', '重庆', 10467, now()),
       (468, 'Name468', '中国', '重庆', 10468, now()),
       (469, 'Name469', '中国', '重庆', 10469, now()),
       (470, 'Name470', '中国', '重庆', 10470, now()),
       (471, 'Name471', '中国', '重庆', 10471, now()),
       (472, 'Name472', '中国', '重庆', 10472, now()),
       (473, 'Name473', '中国', '重庆', 10473, now()),
       (474, 'Name474', '中国', '重庆', 10474, now()),
       (475, 'Name475', '中国', '重庆', 10475, now()),
       (476, 'Name476', '中国', '重庆', 10476, now()),
       (477, 'Name477', '中国', '重庆', 10477, now()),
       (478, 'Name478', '中国', '重庆', 10478, now()),
       (479, 'Name479', '中国', '重庆', 10479, now()),
       (480, 'Name480', '中国', '重庆', 10480, now()),
       (481, 'Name481', '中国', '重庆', 10481, now()),
       (482, 'Name482', '中国', '重庆', 10482, now()),
       (483, 'Name483', '中国', '重庆', 10483, now()),
       (484, 'Name484', '中国', '重庆', 10484, now()),
       (485, 'Name485', '中国', '重庆', 10485, now()),
       (486, 'Name486', '中国', '重庆', 10486, now()),
       (487, 'Name487', '中国', '重庆', 10487, now()),
       (488, 'Name488', '中国', '重庆', 10488, now()),
       (489, 'Name489', '中国', '重庆', 10489, now()),
       (490, 'Name490', '中国', '重庆', 10490, now()),
       (491, 'Name491', '中国', '重庆', 10491, now()),
       (492, 'Name492', '中国', '重庆', 10492, now()),
       (493, 'Name493', '中国', '重庆', 10493, now()),
       (494, 'Name494', '中国', '重庆', 10494, now()),
       (495, 'Name495', '中国', '重庆', 10495, now()),
       (496, 'Name496', '中国', '重庆', 10496, now()),
       (497, 'Name497', '中国', '重庆', 10497, now()),
       (498, 'Name498', '中国', '重庆', 10498, now()),
       (499, 'Name499', '中国', '重庆', 10499, now()),
       (500, 'Name500', '中国', '重庆', 10500, now()),
       (501, 'Name501', '中国', '重庆', 10501, now()),
       (502, 'Name502', '中国', '重庆', 10502, now()),
       (503, 'Name503', '中国', '重庆', 10503, now()),
       (504, 'Name504', '中国', '重庆', 10504, now()),
       (505, 'Name505', '中国', '重庆', 10505, now()),
       (506, 'Name506', '中国', '重庆', 10506, now()),
       (507, 'Name507', '中国', '重庆', 10507, now()),
       (508, 'Name508', '中国', '重庆', 10508, now()),
       (509, 'Name509', '中国', '重庆', 10509, now()),
       (510, 'Name510', '中国', '重庆', 10510, now()),
       (511, 'Name511', '中国', '重庆', 10511, now()),
       (512, 'Name512', '中国', '重庆', 10512, now()),
       (513, 'Name513', '中国', '重庆', 10513, now()),
       (514, 'Name514', '中国', '重庆', 10514, now()),
       (515, 'Name515', '中国', '重庆', 10515, now()),
       (516, 'Name516', '中国', '重庆', 10516, now()),
       (517, 'Name517', '中国', '重庆', 10517, now()),
       (518, 'Name518', '中国', '重庆', 10518, now()),
       (519, 'Name519', '中国', '重庆', 10519, now()),
       (520, 'Name520', '中国', '重庆', 10520, now()),
       (521, 'Name521', '中国', '重庆', 10521, now()),
       (522, 'Name522', '中国', '重庆', 10522, now()),
       (523, 'Name523', '中国', '重庆', 10523, now()),
       (524, 'Name524', '中国', '重庆', 10524, now()),
       (525, 'Name525', '中国', '重庆', 10525, now()),
       (526, 'Name526', '中国', '重庆', 10526, now()),
       (527, 'Name527', '中国', '重庆', 10527, now()),
       (528, 'Name528', '中国', '重庆', 10528, now()),
       (529, 'Name529', '中国', '重庆', 10529, now()),
       (530, 'Name530', '中国', '重庆', 10530, now()),
       (531, 'Name531', '中国', '重庆', 10531, now()),
       (532, 'Name532', '中国', '重庆', 10532, now()),
       (533, 'Name533', '中国', '重庆', 10533, now()),
       (534, 'Name534', '中国', '重庆', 10534, now()),
       (535, 'Name535', '中国', '重庆', 10535, now()),
       (536, 'Name536', '中国', '重庆', 10536, now()),
       (537, 'Name537', '中国', '重庆', 10537, now()),
       (538, 'Name538', '中国', '重庆', 10538, now()),
       (539, 'Name539', '中国', '重庆', 10539, now()),
       (540, 'Name540', '中国', '重庆', 10540, now())
;


insert into circle_db.base_user
values (541, 'Name541', '中国', '重庆', 10001, now());

导入数据: groupBitmapState(id) as object_id_map, 从聚合函数groupBitmapState构造

AggregateFunction(groupBitmap, UInt64) 位图字段值
insert into circle_db.bitmap_circle
select tag                  as row_key,
       '-1'                 as field_value_string,
       tag                  as field_value_long,
       '-1'                 as field_value_double,
       groupBitmapState(id) as object_id_map,
       now()                as p_date,
       'user_basic'         as table_code,
       'city'               as field_code
from circle_db.base_user
group by tag
;

查询标签数据: bitmapToArray(groupBitmapMergeState(object_id_map)

select row_key,
       table_code,
       field_code,
       field_value_long,
       bitmapToArray(groupBitmapMergeState(object_id_map))
from circle_db.bitmap_circle
group by row_key, table_code, field_code, field_value_long;

查询表

select *
from circle_db.bitmap_circle;

select *
from circle_db.base_user;

常用位图函数

1.无符号整数构建位图对象

select bitmapBuild([1,2,3,4,5]) as res;

2.将位图对象转化为整数数组

select bitmapToArray(bitmapBuild([1,2,3,4,5])) as res;
/*
┌─res─────────┐
│ [1,2,3,4,5] │
└─────────────┘
*/

3.bitmapSubsetInRange 将位图指定范围转化为另外一个位图,相当于截取数据,左闭右开

select bitmapToArray(
               bitmapSubsetInRange(
                       bitmapBuild(
                               [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,100,200,500]
                           ),
                       toUInt32(10),
                       toUInt32(15)
                   )
           ) as res;

/*
┌─res──────────────┐
│ [10,11,12,13,14] │
└──────────────────┘
 */

4.bitmapSubsetLimit 将位图指定范围转化为另外一个位图,(位图函数,起始点,限制条数)

select bitmapToArray(bitmapSubsetLimit(bitmapBuild(
                                               [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,100,200,500]),
                                       toUInt32(10), toUInt32(15))) as res;

/*
┌─res────────────────────────────────────────────┐
│ [10,11,12,13,14,15,16,17,18,19,20,21,22,23,24] │
└────────────────────────────────────────────────┘
 */

5.bitmapContains 查看位图中是否包含指定元素:存在则返回1,不存在返回0

select bitmapContains(bitmapBuild([1,2,3,4,5]), toUInt32(9)) as res;

6.bitmapHasAny 比较两个位图是否包含相同元素: 如果有相同的返回1,没有则返回0

select bitmapHasAny(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) as res;

7.bitmapHasAll 如果第一个位图包含第二个位图所有元素返回1,反之返回0

select bitmapHasAll(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) as res;

8.bitmapAnd 两个位图进行与操作,返回一个新位图对象 =》 取交集

select bitmapToArray(bitmapAnd(bitmapBuild([1,2,3,4,5,6]), bitmapBuild([3,4,5,6,7,8]))) as res;

/*
┌─res───────┐
│ [3,4,5,6] │
└───────────┘
 */

9.bitmapOr 两个位图进行或操作,返回一个新位图对象 =》 取并集

select bitmapToArray(bitmapOr(bitmapBuild([1,2,3,4,5,6]), bitmapBuild([3,4,5,6,7,8]))) as res;

/*
┌─res───────────────┐
│ [1,2,3,4,5,6,7,8] │
└───────────────────┘
 */

10.bitmapXor 两个位图进行异或操作,返回一个新位图对象 =》 去除两者重复值,其它值合并

select bitmapToArray(bitmapXor(bitmapBuild([1,2,3,4,5,6]), bitmapBuild([3,4,5,6,7,8]))) as res;

/*
┌─res───────┐
│ [1,2,7,8] │
└───────────┘
 */

11.bitmapAndnot 计算两个位图的差异,返回一个新的位图对象 => 第一个位图剔除第二个位图相同值后的数值结果

select bitmapToArray(bitmapAndnot(bitmapBuild([1,2,3,4,5,6]), bitmapBuild([3,4,5,6,7,8]))) as res;

/*
┌─res───┐
│ [1,2] │
└───────┘
 */

12.bitmapCardinality 返回UInt64类型的数值,表示位图对象元素的数量:下面数量为5

select bitmapCardinality(bitmapBuild([1,2,3,4,6])) as res;

13.bitmapMin 返回返回UInt64类型的数值,表示位图最小值:1

select bitmapMin(bitmapBuild([1,2,3,4,5,6,7,8])) as res;

14.bitmapMax 返回返回UInt64类型的数值,表示位图最大值:8

select bitmapMax(bitmapBuild([1,2,3,4,5,6,7,8])) as res;

15.bitmapAndCardinality 两个位图进行与操作,得到对应位图对象元素的数量:4

SELECT bitmapAndCardinality(bitmapBuild([1,2,3,4,5,6]), bitmapBuild([3,4,5,6,7,8])) AS res;

16.bitmapOrCardinality 两个位图进行或操作,得到对应位图对象元素的数量:8

SELECT bitmapOrCardinality(bitmapBuild([1,2,3,4,5,6]), bitmapBuild([3,4,5,6,7,8])) AS res;

17.bitmapXorCardinality 两个位图进行异或操作,得到对应位图对象元素的数量:4

SELECT bitmapXorCardinality(bitmapBuild([1,2,3,4,5,6,7]), bitmapBuild([3,4,5,6,7,8,9])) AS res;

18.bitmapAndnotCardinality 位图和非标准性, 计算两个位图的差异,返回结果位图的基数:2

SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3,4,5,6,7]), bitmapBuild([3,4,5,6,7,8,9])) AS res;

19.聚合类函数的使用 groupBitmapAnd,groupBitmapOr,groupBitmapXor

-- 数据准备
CREATE TABLE circle_db.bitmap_column_expr_test
(
    tag_id String,
    z      AggregateFunction(groupBitmap, UInt32)
)
    ENGINE = MergeTree
        ORDER BY tag_id;

INSERT INTO circle_db.bitmap_column_expr_test
VALUES ('tag1', bitmapBuild(cast([1,2,3,4,5,6,7,8,9,10] as Array(UInt32))));
INSERT INTO circle_db.bitmap_column_expr_test
VALUES ('tag2', bitmapBuild(cast([6,7,8,9,10,11,12,13,14,15] as Array(UInt32))));
INSERT INTO circle_db.bitmap_column_expr_test
VALUES ('tag3', bitmapBuild(cast([2,4,6,8,10,12] as Array(UInt32))));
INSERT INTO circle_db.bitmap_column_expr_test
VALUES ('tag4', bitmapBuild(cast([2,4,6,8,10,12,12,10] as Array(UInt32))));

-- 查询测试
SELECT groupBitmapAnd(z)
FROM circle_db.bitmap_column_expr_test
WHERE like(tag_id, 'tag%');
/* 原理是所有的bitmap对象取交,得到的数量,
┌─groupBitmapAnd(z)─┐
│                 3 │
└───────────────────┘
*/
SELECT bitmapToArray(groupBitmapAndState(z))
FROM circle_db.bitmap_column_expr_test
WHERE tag_id = 'tag4';
/*  对bitmap对象里面的数据进行去重操作,后转为array
┌─bitmapToArray(groupBitmapAndState(z))─┐
│ [2,4,6,8,10,12]                       │
└───────────────────────────────────────┘
 */
SELECT groupBitmapOr(z)
FROM circle_db.bitmap_column_expr_test
WHERE like(tag_id, 'tag%');
/*  所有匹配的bitmap对象取并集,去重的数量
┌─groupBitmapOr(z)─┐
│               15 │
└──────────────────┘
 */
SELECT groupBitmapXor(z)
FROM circle_db.bitmap_column_expr_test
WHERE like(tag_id, 'tag%');
/*  去除两者重复值,其它值合并(每两个bitmap对象进行一次操作),得到最后的数量
┌─groupBitmapOr(z)─┐
│               10 │
└──────────────────┘
 */

ClickHouse 快速开始

安装 ClickHouse

Mac OS

wget 'https://builds.clickhouse.com/master/macos/clickhouse'

chmod a+x ./clickhouse

./clickhouse

Ubuntu

sudo apt-get install apt-transport-https ca-certificates dirmngr

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4

echo "deb https://repo.clickhouse.com/deb/stable/ main/" | sudo tee \\

/etc/apt/sources.list.d/clickhouse.list

sudo apt-get update

sudo apt-get install -y clickhouse-server clickhouse-client

sudo service clickhouse-server start

clickhouse-client

参考:https://clickhouse.com/#quick-start

命令行参考

./clickhouse

Use one of the following commands:

clickhouse local [args]

clickhouse client [args]

clickhouse benchmark [args]

clickhouse server [args]

clickhouse extract-from-config [args]

clickhouse compressor [args]

clickhouse format [args]

clickhouse copier [args]

clickhouse obfuscator [args]

clickhouse git-import [args]

clickhouse keeper [args]

clickhouse keeper-converter [args]

clickhouse install [args]

clickhouse start [args]

clickhouse stop [args]

clickhouse status [args]

clickhouse restart [args]

clickhouse static-files-disk-uploader [args]

clickhouse hash-binary [args]

启动 ClickHouse Server

$./clickhouse server

Server 默认的端口号是: 8123

Application: Listening for http://127.0.0.1:8123

客户端连接 ClickHouse

bytedance$./clickhouse client

ClickHouse client version 21.12.1.8808 (official build).

Connecting to localhost:9000 as user default.

Connected to ClickHouse server version 21.12.1 revision 54450.

Quick tips for clickhouse-client Interactive mode:

clickhouse-client

clickhouse-client --host=... --port=... --user=... --password=...

Enable multiline queries:

clickhouse-client -m

clickhouse-client --multiline

Run queries in batch-mode:

clickhouse-client --query='SELECT 1'echo'SELECT 1'|clickhouse-clientclickhouse-client<<<'SELECT 1'

Insert data from a file in specified format:

clickhouse-client --query='INSERT INTO table VALUES'< data.txt

clickhouse-client --query='INSERT INTO table FORMAT TabSeparated'< data.tsv

创建数据库

ClickHouse支持的表引擎官:Ordinary/Dictionary/Memory/mysql/Lazy

创建数据库指定数据库引擎语法:

create database xxxx engine = 数据库引擎

示例:

1.创建一个默认引擎的 clickhouse 数据库:

create database mydb engine=Ordinary comment 'mydb';

默认引擎Ordinary, 如果不指定数据库引擎创建的就是 Ordinary 数据库.

2. 创建 clickhouse 数据库, 使用 Mysql 引擎:

create database mysqlDB engine=MySQL('xx:3306','database','username','password');

3. 创建 Lazy 引擎的数据库:

create database testlazy engine=Lazy(expiration_time_in_seconds);

上次访问之后 expiration_time_in_seconds 秒之前,表放内存.

该库引擎下只能创建 *Log表引擎

查询当前 server 实例所有的 databases:

SELECT * FROM system.databases;

Query id: 3783b56d-d088-47e4-981a-57864a7a8419

┌─name───────────────┬─engine───┬─data_path────┬─metadata_path─────────────────────────────────────────────────────────┬─uuid─────────────────────────────────┬─comment─┐

│ INFORMATION_SCHEMA │ Memory │ ./ │ │ 00000000-0000-0000-0000-000000000000 │ │

│ default │ Atomic │ ./store/ │ /Users/bytedance/soft/store/456/456e7573-40ea-42f8-856e-757340ea82f8/ │ 456e7573-40ea-42f8-856e-757340ea82f8 │ │

│ information_schema │ Memory │ ./ │ │ 00000000-0000-0000-0000-000000000000 │ │

│ mydb │ Ordinary │ ./data/mydb/ │ /Users/bytedance/soft/metadata/mydb/ │ 00000000-0000-0000-0000-000000000000 │ mydb │

│ system │ Atomic │ ./store/ │ /Users/bytedance/soft/store/1db/1dbe01d6-a33f-46ae-9dbe-01d6a33f56ae/ │ 1dbe01d6-a33f-46ae-9dbe-01d6a33f56ae │ │

└────────────────────┴──────────┴──────────────┴───────────────────────────────────────────────────────────────────────┴──────────────────────────────────────┴─────────┘

5 rows in set. Elapsed: 0.001 sec.

建表

create table test

(

dim_id String,

tag_code String,

tag_option_code String,

tag_option_value String,

object_ids Array(String),

p_date DateTime

)

engine =MergeTree

partition by p_date

order by (dim_id,tag_code,tag_option_code,p_date)

;

插入数据

INSERT INTO mydb.test (dim_id, tag_code, tag_option_code, tag_option_value, object_ids, p_date) VALUES ('1', 't1', 'f1', 'a', null, '2021-11-23 17:19:29')

查询数据

select * from test;

以上是关于ClickHouse SQL 语法基础极简教程 + bitmap 位图数据类型的使用实例的主要内容,如果未能解决你的问题,请参考以下文章

ClickHouse SQL 极简教程SQL基础知识

ClickHouse SQL 极简教程使用EXPLAIN 分析 SQL 执行计划

ClickHouse SQL 极简教程ClickHouse SQL 之数据控制语言 DCL

ClickHouse SQL 极简教程ClickHouse SQL之数据操作语言 DML

ClickHouse SQL 极简教程ClickHouse SQL之数据定义语言 DDL

ClickHouse 实战:ClickHouse 基础数据类型极简教程