日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

02_clickhouse安装,卸载,启动/关闭服务,交互式命令(数据库创建,数据导入,查询),批模式数据导入,MySQL接口操作ClickHouse,DBeaver可视化工具安装与使用(学习笔记)

發(fā)布時(shí)間:2024/9/27 数据库 33 豆豆

1 ClickHouse安裝

  • 安裝文件清單
  • clickhouse-client-${version}.noarch.rpm clickhouse-common-static-dbg-${version}.x86_64.rpm clickhouse-common-static-${version}.x86_64.rpm clickhouse-server-${version}.noarch.rpm

    clickhouse的安裝只需要上面4個(gè)文件

  • 安裝命令
  • 命令1: rpm -ivh *.rpm 命令2: yum install *.rpm
  • 卸載
    查看
  • rpm -qa | grep clickhouse

    卸載命令:

    rpm -e rpm包名

    如果卸載不了,使用:

    # 卸載及刪除安裝文件(需root權(quán)限) yum list installed | grep clickhouseyum remove -y clickhouse-common-staticyum remove -y clickhouse-server-commonrm -rf /var/lib/clickhouserm -rf /etc/clickhouse-*rm -rf /var/log/clickhouse-server

    卸載報(bào)錯(cuò)時(shí)強(qiáng)制刪除:

    # 刪除rpm包的時(shí)候不調(diào)用卸載腳本 sudo rpm -e clickhouse-server.x86_64 --noscripts
  • 啟動(dòng)/關(guān)閉服務(wù)
  • systemctl start clickhouse-server systemctl status clickhouse-server systemctl restart clickhouse-server
  • 交互式命令
  • clickhouse-client select 1
  • 測(cè)試數(shù)據(jù)
    下載下面文件,使用wget方式下載
  • wget https://clickhouse-datasets.s3.yandex.net/hits/tsv/hits_v1.tsv.xz wget https://clickhouse-datasets.s3.yandex.net/visits/tsv/visits_v1.tsv.xzyum install xz xz -d hits_v1.tsv.xz xz -d visits_v1.tsv.xz
  • 創(chuàng)建數(shù)據(jù)庫(kù)
  • clickhouse-client --query "CREATE DATABASE IF NOT EXISTS tutorial"
  • 建表
    創(chuàng)建hits_v1表
  • clickhouse-client -m CREATE TABLE tutorial.hits_v1 (`WatchID` UInt64,`JavaEnable` UInt8,`Title` String,`GoodEvent` Int16,`EventTime` DateTime,`EventDate` Date,`CounterID` UInt32,`ClientIP` UInt32,`ClientIP6` FixedString(16),`RegionID` UInt32,`UserID` UInt64,`CounterClass` Int8,`OS` UInt8,`UserAgent` UInt8,`URL` String,`Referer` String,`URLDomain` String,`RefererDomain` String,`Refresh` UInt8,`IsRobot` UInt8,`RefererCategories` Array(UInt16),`URLCategories` Array(UInt16),`URLRegions` Array(UInt32),`RefererRegions` Array(UInt32),`ResolutionWidth` UInt16,`ResolutionHeight` UInt16,`ResolutionDepth` UInt8,`FlashMajor` UInt8,`FlashMinor` UInt8,`FlashMinor2` String,`NetMajor` UInt8,`NetMinor` UInt8,`UserAgentMajor` UInt16,`UserAgentMinor` FixedString(2),`CookieEnable` UInt8,`JavascriptEnable` UInt8,`IsMobile` UInt8,`MobilePhone` UInt8,`MobilePhoneModel` String,`Params` String,`IPNetworkID` UInt32,`TraficSourceID` Int8,`SearchEngineID` UInt16,`SearchPhrase` String,`AdvEngineID` UInt8,`IsArtifical` UInt8,`WindowClientWidth` UInt16,`WindowClientHeight` UInt16,`ClientTimeZone` Int16,`ClientEventTime` DateTime,`SilverlightVersion1` UInt8,`SilverlightVersion2` UInt8,`SilverlightVersion3` UInt32,`SilverlightVersion4` UInt16,`PageCharset` String,`CodeVersion` UInt32,`IsLink` UInt8,`IsDownload` UInt8,`IsNotBounce` UInt8,`FUniqID` UInt64,`HID` UInt32,`IsOldCounter` UInt8,`IsEvent` UInt8,`IsParameter` UInt8,`DontCountHits` UInt8,`WithHash` UInt8,`HitColor` FixedString(1),`UTCEventTime` DateTime,`Age` UInt8,`Sex` UInt8,`Income` UInt8,`Interests` UInt16,`Robotness` UInt8,`GeneralInterests` Array(UInt16),`RemoteIP` UInt32,`RemoteIP6` FixedString(16),`WindowName` Int32,`OpenerName` Int32,`HistoryLength` Int16,`BrowserLanguage` FixedString(2),`BrowserCountry` FixedString(2),`SocialNetwork` String,`SocialAction` String,`HTTPError` UInt16,`SendTiming` Int32,`DNSTiming` Int32,`ConnectTiming` Int32,`ResponseStartTiming` Int32,`ResponseEndTiming` Int32,`FetchTiming` Int32,`RedirectTiming` Int32,`DOMInteractiveTiming` Int32,`DOMContentLoadedTiming` Int32,`DOMCompleteTiming` Int32,`LoadEventStartTiming` Int32,`LoadEventEndTiming` Int32,`NSToDOMContentLoadedTiming` Int32,`FirstPaintTiming` Int32,`RedirectCount` Int8,`SocialSourceNetworkID` UInt8,`SocialSourcePage` String,`ParamPrice` Int64,`ParamOrderID` String,`ParamCurrency` FixedString(3),`ParamCurrencyID` UInt16,`GoalsReached` Array(UInt32),`OpenstatServiceName` String,`OpenstatCampaignID` String,`OpenstatAdID` String,`OpenstatSourceID` String,`UTMSource` String,`UTMMedium` String,`UTMCampaign` String,`UTMContent` String,`UTMTerm` String,`FromTag` String,`HasGCLID` UInt8,`RefererHash` UInt64,`URLHash` UInt64,`CLID` UInt32,`YCLID` UInt64,`ShareService` String,`ShareURL` String,`ShareTitle` String,`ParsedParams` Nested(Key1 String,Key2 String,Key3 String,Key4 String,Key5 String,ValueDouble Float64),`IslandID` FixedString(16),`RequestNum` UInt32,`RequestTry` UInt8 ) ENGINE = MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity = 8192; CREATE TABLE tutorial.visits_v1 (`CounterID` UInt32,`StartDate` Date,`Sign` Int8,`IsNew` UInt8,`VisitID` UInt64,`UserID` UInt64,`StartTime` DateTime,`Duration` UInt32,`UTCStartTime` DateTime,`PageViews` Int32,`Hits` Int32,`IsBounce` UInt8,`Referer` String,`StartURL` String,`RefererDomain` String,`StartURLDomain` String,`EndURL` String,`LinkURL` String,`IsDownload` UInt8,`TraficSourceID` Int8,`SearchEngineID` UInt16,`SearchPhrase` String,`AdvEngineID` UInt8,`PlaceID` Int32,`RefererCategories` Array(UInt16),`URLCategories` Array(UInt16),`URLRegions` Array(UInt32),`RefererRegions` Array(UInt32),`IsYandex` UInt8,`GoalReachesDepth` Int32,`GoalReachesURL` Int32,`GoalReachesAny` Int32,`SocialSourceNetworkID` UInt8,`SocialSourcePage` String,`MobilePhoneModel` String,`ClientEventTime` DateTime,`RegionID` UInt32,`ClientIP` UInt32,`ClientIP6` FixedString(16),`RemoteIP` UInt32,`RemoteIP6` FixedString(16),`IPNetworkID` UInt32,`SilverlightVersion3` UInt32,`CodeVersion` UInt32,`ResolutionWidth` UInt16,`ResolutionHeight` UInt16,`UserAgentMajor` UInt16,`UserAgentMinor` UInt16,`WindowClientWidth` UInt16,`WindowClientHeight` UInt16,`SilverlightVersion2` UInt8,`SilverlightVersion4` UInt16,`FlashVersion3` UInt16,`FlashVersion4` UInt16,`ClientTimeZone` Int16,`OS` UInt8,`UserAgent` UInt8,`ResolutionDepth` UInt8,`FlashMajor` UInt8,`FlashMinor` UInt8,`NetMajor` UInt8,`NetMinor` UInt8,`MobilePhone` UInt8,`SilverlightVersion1` UInt8,`Age` UInt8,`Sex` UInt8,`Income` UInt8,`JavaEnable` UInt8,`CookieEnable` UInt8,`JavascriptEnable` UInt8,`IsMobile` UInt8,`BrowserLanguage` UInt16,`BrowserCountry` UInt16,`Interests` UInt16,`Robotness` UInt8,`GeneralInterests` Array(UInt16),`Params` Array(String),`Goals` Nested(ID UInt32,Serial UInt32,EventTime DateTime,Price Int64,OrderID String,CurrencyID UInt32),`WatchIDs` Array(UInt64),`ParamSumPrice` Int64,`ParamCurrency` FixedString(3),`ParamCurrencyID` UInt16,`ClickLogID` UInt64,`ClickEventID` Int32,`ClickGoodEvent` Int32,`ClickEventTime` DateTime,`ClickPriorityID` Int32,`ClickPhraseID` Int32,`ClickPageID` Int32,`ClickPlaceID` Int32,`ClickTypeID` Int32,`ClickResourceID` Int32,`ClickCost` UInt32,`ClickClientIP` UInt32,`ClickDomainID` UInt32,`ClickURL` String,`ClickAttempt` UInt8,`ClickOrderID` UInt32,`ClickBannerID` UInt32,`ClickMarketCategoryID` UInt32,`ClickMarketPP` UInt32,`ClickMarketCategoryName` String,`ClickMarketPPName` String,`ClickAWAPSCampaignName` String,`ClickPageName` String,`ClickTargetType` UInt16,`ClickTargetPhraseID` UInt64,`ClickContextType` UInt8,`ClickSelectType` Int8,`ClickOptions` String,`ClickGroupBannerID` Int32,`OpenstatServiceName` String,`OpenstatCampaignID` String,`OpenstatAdID` String,`OpenstatSourceID` String,`UTMSource` String,`UTMMedium` String,`UTMCampaign` String,`UTMContent` String,`UTMTerm` String,`FromTag` String,`HasGCLID` UInt8,`FirstVisit` DateTime,`PredLastVisit` Date,`LastVisit` Date,`TotalVisits` UInt32,`TraficSource` Nested(ID Int8,SearchEngineID UInt16,AdvEngineID UInt8,PlaceID UInt16,SocialSourceNetworkID UInt8,Domain String,SearchPhrase String,SocialSourcePage String),`Attendance` FixedString(16),`CLID` UInt32,`YCLID` UInt64,`NormalizedRefererHash` UInt64,`SearchPhraseHash` UInt64,`RefererDomainHash` UInt64,`NormalizedStartURLHash` UInt64,`StartURLDomainHash` UInt64,`NormalizedEndURLHash` UInt64,`TopLevelDomain` UInt64,`URLScheme` UInt64,`OpenstatServiceNameHash` UInt64,`OpenstatCampaignIDHash` UInt64,`OpenstatAdIDHash` UInt64,`OpenstatSourceIDHash` UInt64,`UTMSourceHash` UInt64,`UTMMediumHash` UInt64,`UTMCampaignHash` UInt64,`UTMContentHash` UInt64,`UTMTermHash` UInt64,`FromHash` UInt64,`WebVisorEnabled` UInt8,`WebVisorActivity` UInt32,`ParsedParams` Nested(Key1 String,Key2 String,Key3 String,Key4 String,Key5 String,ValueDouble Float64),`Market` Nested(Type UInt8,GoalID UInt32,OrderID String,OrderPrice Int64,PP UInt32,DirectPlaceID UInt32,DirectOrderID UInt32,DirectBannerID UInt32,GoodID String,GoodName String,GoodQuantity Int32,GoodPrice Int64),`IslandID` FixedString(16) ) ENGINE = CollapsingMergeTree(Sign) PARTITION BY toYYYYMM(StartDate) ORDER BY (CounterID, StartDate, intHash32(UserID), VisitID) SAMPLE BY intHash32(UserID) SETTINGS index_granularity = 8192
  • 數(shù)據(jù)導(dǎo)入
    –max_insert_block_size=100000:表示每次批量導(dǎo)入100000行。
  • date clickhouse-client --query "INSERT INTO tutorial.hits_v1 FORMAT TSV" --max_insert_block_size=100000 < hits_v1.tsv dateclickhouse-client --query "INSERT INTO tutorial.visits_v1 FORMAT TSV" --max_insert_block_size=100000 < visits_v1.tsv

    查詢一下數(shù)據(jù)(如果想按照好的格式顯示,可以在最后加上WG):
    select * from hits_v1 limit 1; \G

  • 查詢
  • SELECTStartURL AS URL,AVG(Duration) AS AvgDuration FROM tutorial.visits_v1 WHERE StartDate BETWEEN '2014-03-23' AND '2014-03-30' GROUP BY URL ORDER BY AvgDuration DESC LIMIT 10;SELECTsum(Sign) AS visits,sumIf(Sign, has(Goals.ID, 1105530)) AS goal_visits,(100. * goal_visits) / visits AS goal_percent FROM tutorial.visits_v1 WHERE (CounterID = 912887) AND (toYYYYMM(StartDate) = 201403) AND (domain(StartURL) = 'yandex.ru');

    2 clickhouse-client

    交互式模式:clickhouse-client
    非交互式模式: 指定了–query參數(shù)或?qū)?shù)據(jù)發(fā)送至標(biāo)準(zhǔn)的stdin。

    測(cè)試表創(chuàng)建:

    create database if not exists test; use test; drop table test; create table test(id UInt8, text String, created DateTime) ENGINE=TinyLog;

    批模式數(shù)據(jù)導(dǎo)入:

    echo -ne "1, 'some text', '2016-08-14 00:00:00'\n2, 'some more text', '2016-08-14 00:00:01'" | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV";cat <<_EOF | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV"; 3, 'some text', '2016-08-14 00:00:00' 4, 'some more text', '2016-08-14 00:00:01' _EOFselect * from test.test;\G

    總結(jié):
    (1)、批模式下的默認(rèn)數(shù)據(jù)格式為T(mén)abSeparated,可使用FORMAT指定格式。
    (2)、使用–multiquery參數(shù),可同時(shí)執(zhí)行多個(gè)查詢(除了INSERT),每個(gè)查詢語(yǔ)句使用分號(hào)(;)分隔。
    (3)、使用–multiline或-m參數(shù),允許執(zhí)行多行的查詢。
    (4)、在查詢語(yǔ)句的分號(hào)之后指定\G或使用\G替換分號(hào), 數(shù)據(jù)以垂直的格式展示。
    (5)、歷史的執(zhí)行語(yǔ)句保存在操作系統(tǒng)文件:~/.clickhouse-client-history。
    (6)、退出客戶端的方式,按Ctrl + D或Ctrl + C,或執(zhí)行命令:exit、quit、logout、q、Q、:q。

    查詢中指定參數(shù):

    clickhouse-client --param_myid=3 --database=test --query="select * from test where id>{myid:UInt8}" clickhouse-client --database=test --query="select * from test where id>3"

    查詢語(yǔ)句指定參數(shù),參數(shù)值通過(guò)客戶端參數(shù)傳遞。
    使用大括號(hào)占位要傳遞的參數(shù)值,格式為: {:}
    name:占位標(biāo)識(shí)符。通過(guò)clickhouse-client參數(shù)指定,格式為–param_ = value 。
    data type:指定參數(shù)值的數(shù)據(jù)類(lèi)型,例如:UInt8、String等。

    clickhouse-client --param_parName="[1, 2]" -q "SELECT * FROM table WHERE a = {parName:Array(UInt16)}"clickhouse-client --query="select * from test.test FORMAT TabSeparated" > file.tsv

    clickhouse-client查找配置文件的順序:
    (1)、通過(guò)–config-file指定的配置文件。
    (2)、./clickhouse-client.xml
    (3)、~/.clickhouse-client/config.xml
    (4)、/etc/clickhouse-client/config.xml

    {host}
    {port}
    {user}
    {database}
    {display_name}

    3 MySQL接口操作ClickHouse

  • 安裝MySQL的客戶端
  • tar -xzf MySQL-client-5.6.38-1.el6.x86_64.tar.gz rpm -ivh MySQL-client-5.6.38-1.el6.x86_64.rpm
  • 配置MySQL協(xié)議
  • vim /etc/clickhouse-server/config.xml <mysql_port>9004</mysql_port>

    重啟clickhouse

    systemctl restart clickhouse-server

    命令行連接到ClickHouse:

    mysql --protocol tcp -u default -P 9004

    為了兼容所有MySQL客戶端,建議使用SHA1加密用戶密碼(即修改訪問(wèn)密碼,下面的命令直接在服務(wù)器上執(zhí)行):

    PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" \ | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-' 0FeOfptD 這個(gè)作為用戶名 e6f07fa4a54a8d81a3fd318378311d8fd5ae8e6c 密碼

    修改配置文件:vim /etc/clickhouse-server/users.xml

    <password></password>注釋,然后添加如下: <password_double_sha1_hex>e6f07fa4a54a8d81a3fd318378311d8fd5ae8e6c</password_double_sha1_hex>

    執(zhí)行命令:

    mysql --protocol tcp -u default -P 9004 --password=0FeOfptD

    4 DBeaver可視化工具安裝與使用

  • 安裝DBeaver (軟件下載地址:https://dbeaver.io/download/ ;安裝方式是直接下一步下一步的方式進(jìn)行安裝:)
  • 下載DBeaver的JDBC驅(qū)動(dòng)
  • 連接ClickHouse, 注意,配置CH的網(wǎng)絡(luò)
  • /etc/clickhouse-server/config.xml <listen_host>0.0.0.0</listen_host>
  • 使用DBeaver連接ClickHouse



    編輯如下內(nèi)容:

    點(diǎn)擊"編輯驅(qū)動(dòng)設(shè)置"



    添加阿里云的源

    URL:http://maven.aliyun.com/nexus/content/groups/public/
    然后點(diǎn)擊"應(yīng)用",“Apply and Close”,一直點(diǎn)擊到最后。
  • 在"SQL編輯器”里,可以點(diǎn)擊"SQL編輯器"。在編輯器中可以編寫(xiě)sql語(yǔ)句。

  • 設(shè)置參數(shù)
    在URL模板中,設(shè)置ClickHouse的參數(shù)
  • jdbc:clickhouse://{host}:{port}[/{database}]?socket_timeout=600000&max_bytes_before_external_group_by=20000000

    配置參數(shù):

    timeout socket_timeout

    外部聚合,如果用于聚合內(nèi)存不足,10G

    max_bytes_before_external_group_by=5G

    總結(jié)

    以上是生活随笔為你收集整理的02_clickhouse安装,卸载,启动/关闭服务,交互式命令(数据库创建,数据导入,查询),批模式数据导入,MySQL接口操作ClickHouse,DBeaver可视化工具安装与使用(学习笔记)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。