目錄
一、Python 連接clickhouse數(shù)據(jù)庫
? clickhouse對外的接口協(xié)議通常有兩種形式:
? 代碼實現(xiàn)部分:
二、使用客戶端工具DBeaver連接clickhouse
? 新建clickhouse表
三、DBeaver 連接clickhouse 用csv文件導入數(shù)據(jù)
? 導入方式:
方法一:使用DBeaver自帶導入數(shù)據(jù)功能;
方法二:具體方式如下:
解決問題:數(shù)據(jù)導入之后,出現(xiàn)中文亂碼。
ClickHouse是近年來備受關(guān)注的開源列式數(shù)據(jù)庫(DBMS),主要用于數(shù)據(jù)聯(lián)機分析(OLAP)領(lǐng)域,于2016年開源。
一、Python 連接clickhouse數(shù)據(jù)庫
? clickhouse對外的接口協(xié)議通常有兩種形式:
- 常規(guī)的http協(xié)議,java的jdbc就采用這種方式,端口一般是8123;
- 面向python的tcp協(xié)議,端口號通常為9000(對,是“通?!保?。
端口問題,HTTP協(xié)議(默認端口8123);TCP (Native)協(xié)議(默認端口號為9000),Python里的clickhouse_driver用的tcp端口9000,DBeaver使用的是HTTP協(xié)議所以可以使用8123端口。
? 代碼實現(xiàn)部分:
?(1)我們首先需要安裝第三方庫clickhouse_driver,
(2)完整代碼:使用clickhouse_driver 包中的Client類,其中需要修改的參數(shù)有host,user,password,
from clickhouse_driver import Client
client = Client(host='127.0.0.1',port='9000',user=clickhouse_user ,password=clickhouse_pwd)
sql = 'select * from db_name.tb_name limit 0, 1000'
ans = client.execute(sql)
?
?
二、使用客戶端工具DBeaver連接clickhouse
前提:Clickhouse客戶端工具為dbeaver,首先需要安裝連接工具Dbeaver。
Dbeaver安裝教程地址:DBeaver安裝與使用教程(超詳細安裝與使用教程)_多喝清晨的粥的博客-CSDN博客_dbeaver安裝配置
(1)打開Dbeaver,通過操作界面菜單中“數(shù)據(jù)庫”創(chuàng)建配置新連接,如下圖所示,選擇并下載ClickHouse驅(qū)動(默認不帶驅(qū)動),
(2)填寫基礎(chǔ)配置
DBeaver配置是基于Jdbc方式,一般默認URL和端口如下:
jdbc:clickhouse://192.168.17.61:8123
如下圖所示。在是用DBeaver連接Clickhouse做查詢時,有時候會出現(xiàn)連接或查詢超時的情況,這個時候可以在連接的參數(shù)中添加設(shè)置socket_timeout參數(shù)來解決問題。
jdbc:clickhouse://{host}:{port}[/{database}]?socket_timeout=600000
?(3)測試連接,提示未安裝驅(qū)動
到了這一步,說明連接配置信息填寫完成,在彈出來的地方選擇下載按鈕,等它全部下載完驅(qū)動后即可測試連接。
如下圖所示,開始下載驅(qū)動文件:
?點擊“下載”,
?
等待下載完成,
?(4)再次測試連接,連接成功,
?可以看到已經(jīng)成功連接到了Clickhouse。
?
?
? 新建clickhouse表
(1)右擊,選擇“新建列”,進行創(chuàng)建表,
(2)或者使用代碼進行創(chuàng)建表,
?在sql編輯器中寫入想要創(chuàng)建的表結(jié)構(gòu)代碼,
CREATE TABLE table_name (
node_id Int128,
node_name VARCHAR(100),
ll Int16,
ink VARCHAR(500),
onk VARCHAR(500),
fne VARCHAR(500),
tne VARCHAR(500)
) Engine = MergeTree()
ORDER BY node_id
?這樣表就創(chuàng)建好了。
三、DBeaver 連接clickhouse 用csv文件導入數(shù)據(jù)
? 導入方式:
(1)先再需要導入的數(shù)據(jù)表中 插入幾條數(shù)據(jù) 然后 導出 csv 格式的數(shù)據(jù)。【目的是為了查看導出的cxv 的數(shù)據(jù)是是什么格式, 我們導入也按照這個格式導入】
(2)再導出的表格中 加入我們需要導入的數(shù)據(jù),格式和導出的數(shù)據(jù)格式保持一致。
(3)然后 通過csv 的方式導入數(shù)據(jù)到數(shù)據(jù)庫表。
方法一:使用DBeaver自帶導入數(shù)據(jù)功能;
右擊需要導入csv文件的表,選擇“導入數(shù)據(jù)”,依次進行一下步驟,
?
?
?
?
導入數(shù)據(jù)成功了。
方法二:具體方式如下:
- 首先將待導入的csv數(shù)據(jù)表傳輸?shù)絚lickhouse所在的服務器;
- 在數(shù)據(jù)庫中提前建好表,和等待導入數(shù)據(jù)匹配;
- 在客戶端輸入以下命令:
clickhouse-client --databse="testdb" --query="INSERT INTO testdb.TEST_table FORMAT CSV" < /dataset/data.csv
若出現(xiàn)問題,可以試一下 將FORMAT CSV 改為 FORMAT CSVWithNames
?文章來源:http://www.zghlxwxcb.cn/news/detail-478971.html
解決問題:數(shù)據(jù)導入之后,出現(xiàn)中文亂碼。
解決方法:將csv 表格文件用記事本打開 另存為的方式 保存新的文件 ,編碼格式選擇為為UTF-8 然后保存。 然后從新的修改編碼格式之后的文件導入數(shù)據(jù)庫表格, 中文亂碼的問題就解決了。文章來源地址http://www.zghlxwxcb.cn/news/detail-478971.html
到了這里,關(guān)于Python 連接clickhouse數(shù)據(jù)庫以及新建表結(jié)構(gòu),csv導入數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!