Python 连接clickhouse数据库以及新建表结构,csv导入数据

这篇具有很好参考价值的文章主要介绍了Python 连接clickhouse数据库以及新建表结构,csv导入数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Python 连接clickhouse数据库

◼ clickhouse对外的接口协议通常有两种形式:

◼ 代码实现部分:

二、使用客户端工具DBeaver连接clickhouse

◼ 新建clickhouse表

三、DBeaver 连接clickhouse 用csv文件导入数据

◼ 导入方式:

方法一:使用DBeaver自带导入数据功能;

方法二:具体方式如下:

解决问题:数据导入之后,出现中文乱码。


ClickHouse是近年来备受关注的开源列式数据库(DBMS),主要用于数据联机分析(OLAP)领域,于2016年开源。

一、Python 连接clickhouse数据库

◼ clickhouse对外的接口协议通常有两种形式:

  1. 常规的http协议,java的jdbc就采用这种方式,端口一般是8123;
  2. 面向python的tcp协议,端口号通常为9000(对,是“通常”)。

端口问题,HTTP协议(默认端口8123);TCP (Native)协议(默认端口号为9000),Python里的clickhouse_driver用的tcp端口9000,DBeaver使用的是HTTP协议所以可以使用8123端口。

◼ 代码实现部分:

 (1)我们首先需要安装第三方库clickhouse_driver,

Python 连接clickhouse数据库以及新建表结构,csv导入数据

(2)完整代码:使用clickhouse_driver 包中的Client类,其中需要修改的参数有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)

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 

 

二、使用客户端工具DBeaver连接clickhouse

前提:Clickhouse客户端工具为dbeaver,首先需要安装连接工具Dbeaver。

Dbeaver安装教程地址:DBeaver安装与使用教程(超详细安装与使用教程)_多喝清晨的粥的博客-CSDN博客_dbeaver安装配置

(1)打开Dbeaver,通过操作界面菜单中“数据库”创建配置新连接,如下图所示,选择并下载ClickHouse驱动(默认不带驱动),

Python 连接clickhouse数据库以及新建表结构,csv导入数据

Python 连接clickhouse数据库以及新建表结构,csv导入数据

(2)填写基础配置

DBeaver配置是基于Jdbc方式,一般默认URL和端口如下:

jdbc:clickhouse://192.168.17.61:8123

如下图所示。在是用DBeaver连接Clickhouse做查询时,有时候会出现连接或查询超时的情况,这个时候可以在连接的参数中添加设置socket_timeout参数来解决问题。

jdbc:clickhouse://{host}:{port}[/{database}]?socket_timeout=600000

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 (3)测试连接,提示未安装驱动

到了这一步,说明连接配置信息填写完成,在弹出来的地方选择下载按钮,等它全部下载完驱动后即可测试连接。

如下图所示,开始下载驱动文件:

Python 连接clickhouse数据库以及新建表结构,csv导入数据

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 点击“下载”,

Python 连接clickhouse数据库以及新建表结构,csv导入数据 

等待下载完成,

 (4)再次测试连接,连接成功,

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 可以看到已经成功连接到了Clickhouse。

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 

 

◼ 新建clickhouse表

(1)右击,选择“新建列”,进行创建表,

Python 连接clickhouse数据库以及新建表结构,csv导入数据

(2)或者使用代码进行创建表,

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 在sql编辑器中写入想要创建的表结构代码,

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

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 这样表就创建好了。

三、DBeaver 连接clickhouse 用csv文件导入数据

◼ 导入方式:

(1)先再需要导入的数据表中 插入几条数据 然后 导出 csv 格式的数据。【目的是为了查看导出的cxv 的数据是是什么格式, 我们导入也按照这个格式导入】

Python 连接clickhouse数据库以及新建表结构,csv导入数据

Python 连接clickhouse数据库以及新建表结构,csv导入数据

(2)再导出的表格中 加入我们需要导入的数据,格式和导出的数据格式保持一致。

Python 连接clickhouse数据库以及新建表结构,csv导入数据

(3)然后 通过csv 的方式导入数据到数据库表。

方法一:使用DBeaver自带导入数据功能;

右击需要导入csv文件的表,选择“导入数据”,依次进行一下步骤,

Python 连接clickhouse数据库以及新建表结构,csv导入数据

 Python 连接clickhouse数据库以及新建表结构,csv导入数据

Python 连接clickhouse数据库以及新建表结构,csv导入数据 

Python 连接clickhouse数据库以及新建表结构,csv导入数据 

Python 连接clickhouse数据库以及新建表结构,csv导入数据 

Python 连接clickhouse数据库以及新建表结构,csv导入数据

导入数据成功了。

方法二:具体方式如下:

  1. 首先将待导入的csv数据表传输到clickhouse所在的服务器;
  2. 在数据库中提前建好表,和等待导入数据匹配;
  3. 在客户端输入以下命令:
clickhouse-client --databse="testdb" --query="INSERT INTO testdb.TEST_table FORMAT CSV" < /dataset/data.csv

若出现问题,可以试一下 将FORMAT CSV 改为 FORMAT CSVWithNames
 

解决问题:数据导入之后,出现中文乱码。

解决方法:将csv 表格文件用记事本打开 另存为的方式 保存新的文件 ,编码格式选择为为UTF-8 然后保存。 然后从新的修改编码格式之后的文件导入数据库表格, 中文乱码的问题就解决了。文章来源地址https://www.toymoban.com/news/detail-478971.html

到了这里,关于Python 连接clickhouse数据库以及新建表结构,csv导入数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • pycharm连接MySql数据库,新建表creat table、删除表drop table、查询表select、插入数据insert

    亲爱的小伙伴,欢迎你来为学习新的知识啦~~~ 一、安装pymysql 首先我们肯定要先在python中把能操作mySql的第三方数据库安装一下呀~ 安装方式:pip安装(你有没有安装好pip呀,可以看安装pip的相关文章进行安装好哦~) 打开我们电脑的终端,然后输入以下的命令,将我们

    2024年02月09日
    浏览(17)
  • 一百五十六、Kettle——Linux上安装的Kettle9.3连接ClickHouse数据库(亲测,附流程截图)

    一百五十六、Kettle——Linux上安装的Kettle9.3连接ClickHouse数据库(亲测,附流程截图)

    kettle9.3在Linux上安装好后,需要与ClickHouse数据库建立连接 1、kettle版本是9.3 2、ClickHouse版本是21.9.5.16   https://pan.baidu.com/s/1iqGyXsTaQSCHEbjj7yX7AA 提取码: mvzd 注意 : clickhouse-plugins文件里就是自定义的clickhouse驱动jar包    注意 : 要区分Linux系统架构是64位还是32位, 它们所属的L

    2024年02月12日
    浏览(15)
  • Navicat远程连接,Docker中的mysql,新建数据库时报错:1044 -Access denied for user ‘root‘@‘%‘ to database

    Navicat远程连接,Docker中的mysql,新建数据库时报错:1044 -Access denied for user ‘root‘@‘%‘ to database

     该错误表示root用户没有访问指定数据库的权限  解决办法就是重新赋权 1.访问 Docker 容器内的 MySQL 命令行界面 2.输入 root 用户的密码 注 : 密码是不会显示的,输入完后Enter即可 3.切换数据库 4.更新表host中的列,将根用户的mysql.user值设置为。\\\'%\\\' 注 :         默认情况

    2024年02月16日
    浏览(17)
  • IDEA连接数据库,以及报错问题

    IDEA连接数据库,以及报错问题

    IDEA是一款功能强大的开发工具,而IDEA连接数据库是其中的一个附带功能,该功能可以在我们开发大型任务,编写SQL语句时,提供帮助,例如以MySQL为例 解决SQL映射文件的警告提示: 在映射配置文件中存在报红的情况。问题如下: 产生的原因:Idea和数据库没有建立连接,不

    2023年04月22日
    浏览(8)
  • 超详细IDEA连接本地数据库以及使用教程

    超详细IDEA连接本地数据库以及使用教程

    IDEA的项目要想连接本地数据库,前提就是本地已经配置有数据库,并且可以使用 附Windows10 安装配置数据库教程: 超详细MySQL(免安装版)安装与配置教程 点击IDEA右侧Database处 点击+号----点击Data Source----找到MySQL并选中 操作如下图所示: 点击Schemas----将要使用的数据库打勾 点击

    2024年02月15日
    浏览(18)
  • QT实现连接MySQL数据库以及查询等操作

    QT实现连接MySQL数据库以及查询等操作

    功能包含数据库的增删改查和界面的显示,因为没有用.ui文件所以控件的位置都是手动设置的,写的有点费劲 首先打开Navicat,新建一个名字为bak_db的数据库,然后新建查询导入下面的sql语句: 然后刷新显示表已经创建好了,接下来就开始进行操作了: 文件结构 源码在我的

    2024年02月04日
    浏览(16)
  • 【PHP系统学习】——Laravel框架数据库的连接以及数据库的增删改查的详细教程

    【PHP系统学习】——Laravel框架数据库的连接以及数据库的增删改查的详细教程

    👨‍💻个人主页 :@开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏 :PHP程序开发 —   按照 MVC 的架构,对数据的操作应该放在 Model 中完成,但如果不使用 Model,我们也可以用 laravel框架提供的 D8 类

    2024年04月15日
    浏览(10)
  • Android Studio + sqllite 数据库连接的步骤以及常见问题

    Android Studio + sqllite 数据库连接的步骤以及常见问题

    软件见文末 前提是先安装好sqllite----无脑式next安装 提示:.xml有些资源需要用自己有的,否者有可能会报错!!!! 1、打开SDK后,查看SDK路径 2、在SDK路径下右键鼠标运行命令行,输入命令monitor,即可启动Android monitor Device如下图所示: 执行完monitor,正常情况下会直接跳转

    2024年02月04日
    浏览(21)
  • Javaweb之数据库连接池以及lombok类库的详细解析

    Javaweb之数据库连接池以及lombok类库的详细解析

    在前面我们所讲解的mybatis中,使用了数据库连接池技术,避免频繁的创建连接、销毁连接而带来的资源浪费。 下面我们就具体的了解下数据库连接池。 3.1 介绍 没有使用数据库连接池: 客户端执行SQL语句:要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行后又需要

    2024年02月03日
    浏览(46)
  • QT mysql 驱动-数据库安装以及qt连接ssl报错问题

    QT mysql 驱动-数据库安装以及qt连接ssl报错问题

    文章末尾是引用笔记 配置MySQL8.0 环境变量 如果不配置MySQL环境变量,就不能在命令行直接输入MySQL登录命令。下面说如何配置MySQL的环境变量: 步骤1:在桌面上右击【此电脑】图标,在弹出的快捷菜单中选择【属性】菜单命令。 步骤2:打开【系统】窗口,单击【高级系统设

    2024年01月20日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包