<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 數據庫操作 show databases ; ![](https://img.kancloud.cn/0a/7b/0a7ba7995d48aedbf478822febde4e9c_372x167.png) create database if not exists datatest1; ![](https://img.kancloud.cn/a2/55/a2557256a43c458ed80ae99c8070ca62_431x337.png) use datatest1; select currentDatabase() ; \-- 刪除庫 drop database datatest1; ![](https://img.kancloud.cn/9e/a4/9ea46b62bf38269a3bac0f5cba6cec73_390x352.png) ## DDL語句 * 建表 > 目前只有MergeTree、Merge和Distributed這三類表引擎支持ALTER語法 > > ,所以在進行alter操作的時候注意表的引擎 **ClickHouse中建表的時候一定要求指定表的引擎** Memory 引擎以未壓縮的形式將數據存儲在 RAM 中,重新啟動服務器時,表中的數據消失,表將變為空。一般用于測試。 ~~~SQL CREATE TABLE tb_test1 ( `id` Int8, `name` String ) ENGINE = Memory() ; ~~~ ![](https://img.kancloud.cn/88/2c/882c6dccc64c61577c9f9cfd65fcead9_602x429.png) * 修改表結構 ~~~ alter table tb_test1 add column age UInt8 ; ~~~ 提示異常: ![](https://img.kancloud.cn/55/de/55de2d00445c2c3f5e39d902eb0020ec_796x216.png) * 創建MergeTree引擎的表 > Clickhouse 中最強大的表引擎當屬`MergeTree`(合并樹)引擎及該系列(`*MergeTree`)中的其他引擎。 > MergeTree系列的引擎被設計用于插入極大量的數據到一張表當中。數據可以以數據片段的形式一個接著一個的快速寫入,數據片段在后臺按照一定的規則進行合并。相比在插入時不斷修改(重寫)已存儲的數據,這種策略會高效很多。 先追加再合并 MergeTree引擎一定要指定主鍵,用于合并排序,order by默認指定主鍵 ~~~ CREATE TABLE tb_test2 ( `id` Int8, `name` String ) ENGINE = MergeTree() ORDER BY id ; ~~~ ![](https://img.kancloud.cn/87/f0/87f040db12fee4c7e6507e574755d94e_714x244.png) * 添加字段 ~~~ alter table tb_test1 add column age UInt8 ; ~~~ ![](https://img.kancloud.cn/75/b2/75b286808d740a4284326216df28b7c5_454x165.png) ~~~ alter table tb_test2 add column gender String comment '性別' after name ; ~~~ ![](https://img.kancloud.cn/da/f7/daf73fb0e31f7a6ef351eaa08489233b_793x503.png) * 刪除字段 ~~~ alter table tb_test2 drop column age ; ~~~ * 修改字段的數據類型 ~~~ alter table tb_test2 modify column gender UInt8 default 0 ; ~~~ ## DML語句 * 插入數據 ![](https://img.kancloud.cn/95/55/9555f3a2316236527ef1f2987bbeeb31_738x185.png) 只有mergeTree引擎才能對表數據進行修改 * 刪除 ~~~ alter table tb_test2 delete where id=2 ; ~~~ ![](https://img.kancloud.cn/d9/34/d9347722b168358ef9239725829419ff_432x573.png) * 更新 alter table tb\_test2 update age=18 where id=1 ![](https://img.kancloud.cn/b6/12/b612fdca782ba98becef54a56414d673_477x380.png) ## 分區操作 目前只有MergeTree系列 的表引擎支持數據分區 * 創建表 ~~~ create table test_partition1( id String , ctime DateTime)engine=MergeTree() partition by toYYYYMM(ctime) order by (id) ; ~~~ * 插入數據 ~~~ insert into test_partition1 values(1,now()) ,(2,'2021-06-11 10:12:11'),(3,'2021-07-20 10:12:11') ,(4,'2020-01-20 10:12:11') ; ~~~ ![](https://img.kancloud.cn/b7/f4/b7f4dab2d773c303adcb110db58724c7_429x315.png) * 分區命名規則 > 分區數據如果是數字就按數字命名分區文件夾,如果含字符串,則按Hash值來命名,可以根據內置system系統表查詢partition的值 按年月分區 插入數據后在/var/lib/clickhouse/data/的數據庫和表里可以看到多個文件夾 ![](https://img.kancloud.cn/9b/0e/9b0e169fb86bb987d9ef62c4f13d126a_801x531.png) ClickHouse內置了許多system系統表,用于查詢自身的狀態信息。 其中parts系統表專門用于查詢數據表的分區信息 ![](https://img.kancloud.cn/eb/cf/ebcfa6e1d0f9c8d18bb9743e2cb70806_725x294.png) * 刪除分區 ~~~ -- 刪除一個分區的數據 alter table test_partition1 drop partition '202001' ; ~~~ ![](https://img.kancloud.cn/11/c3/11c331210ed40f2cf49e8e982ca4bcac_523x445.png) * 復制分區 clickHouse支持將A表的分區數據復制到B表,這項特性可以用于快速數據寫入、多表間數據同步和備份等場景,它的完整語法如下: ALTER TABLE B REPLACE PARTITION partition\_expr FROM A 不過需要注意的是,并不是任意數據表之間都能夠相互復制,它們還需要滿足兩個前提 條件: ·兩張表需要擁有相同的分區鍵 ·它們的表結構完全相同。 ~~~ create table test_partition2 as test_partition1 ; show create table test_partition2 ; -- 查看表2的建表語句 ~~~ │ CREATE TABLE default.test\_partition2 ( `id`String, `ctime`DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(ctime) ORDER BY id SETTINGS index\_granularity = 8192 │ -- 兩張表的結構完全一致 ![](https://img.kancloud.cn/c7/dc/c7dce6c9ccd149db06f25f8e82b589aa_494x353.png) \-- 復制一張表的分區到另一張表中 ~~~ alter table test_partition2 replace partition '202106' from test_partition1 ~~~ ![](https://img.kancloud.cn/0c/ac/0cac84d1ebd49eb6cc080cd8961953da_743x407.png) * 重置分區 如果數據表某一列的數據有誤,需要將其重置為初始值,如果設置了默認值那么就是默認值數據,如果沒有設置默認值,會給出系統默認的初始值,此時可以使用下面的語句實現: ~~~ alter table test_partition2 clear column name in partition '202107' ; ~~~ ![](https://img.kancloud.cn/38/aa/38aa48ccdd92e5f7c22c3863162a188c_658x536.png) * 分區卸載和裝載 分區被卸載后,它的物理數據并沒有刪除,而是被轉移到了當前數據表目錄的detached子目錄下 ~~~ -- 分區卸載 alter table test_partition2 detach partition '202106' ; ~~~ ![](https://img.kancloud.cn/7f/16/7f16d3f1febab3f738412c7b437e2641_578x456.png) ![](https://img.kancloud.cn/31/bb/31bb28ff0cb10728abb5e1ce7ce4873e_791x306.png) ~~~ -- 裝載分區 alter table ttest_partition2 attach partition '202106'; ~~~ ## 視圖 > ClickHouse擁有普通和物化兩種視圖,其中物化視圖擁有獨立的存儲,而普通視圖只是一層簡單的查詢代理 * 普通視圖 普通視圖不會存儲任何數據,它只是一層單純的SELECT查詢映射,起著簡化查詢、明晰語義的作用,對查詢性能不會有任何增強。類似mysql。 * 物化視圖 物化視圖支持表引擎,數據保存形式由它的表引擎決定,創建物化視圖的完整語法如下所示 ~~~ create materialized view mv_log engine=Log populate as select * from log ; ~~~ 1)加上populate修飾符會在創建視圖的過程中,會連帶將源表中已存在的數據一并導入。 2)不使用POPULATE修飾符,那么物化視圖在創建之后是沒有數據的。 3)物化視圖只會同步在此之后被寫入源表的數據。目前并不支持同步刪除,如果在源表中刪除了數據,物化視圖的數據仍會保留。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看