文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用ClickHouse建立本地数据库(MACOS系统)

2023-09-14 09:05

关注

ClickHouse 是一个开源的面向列的数据库管理系统,允许用户实时存储和查询大量数据。它专为 OLAP(联机分析处理)工作负载而设计,具有快速、可伸缩和高效的特点。ClickHouse 数据库专门为分析和数据仓库使用案例而设计,因此在需要处理和分析大量数据的公司中特别受欢迎,例如网络搜索引擎、金融服务和电子商务公司等。

一、下载与安装

如果使用MACOS系统,这一步的操作非常简单,在终端输入以下命令运行:

curl https://clickhouse.com/ | sh

接下来ClickHouse就会自动安装,当然这是一种快速部署,如果要进行生产部署,需要更为复杂的流程,但是作为入门学习以及了解SQL语言,快速部署仍然可以运行ClickHouse服务器、ClickHouse-client、ClickHouse-local等等一些工具。

二、运行

同样在终端输入以下指令以启动ClickHouse服务器:

./clickhouse server

第一次运行此命令时,会在当前的目录中创建必要的文件和文件夹,然后服务器启动。

三、客户端

此时需要我们打开一个新的终端并使用ClickHouse-client连接到我们的服务,在新的终端中输入以下代码:

./clickhouse client

出现一个笑脸的符号代表我们的可以向ClickHouse发送DDL和SQL指令,此时我们可以输入select 1并运行如果出现以下结果,表示已经成功,接下来我们可以创建table或者将本地数据导入到ClickHouse服务器中。

 四、使用Python链接ClickHouse服务器

实现本地链接较为简单,主要是为了配合我们进行数据分析,便于展示运行结果,当然基础的操作我们也可以在ClickHouse-client中运行。以下函数是为了对数据库中的table进行查询,并转换成DataFrame的结构。

def clickhouse_query(query):        db_con = clickhouse_driver.Client(host='localhost', port=9000, user='default',        password='',            database='default',            settings={'use_numpy': True})    df, types=db_con.execute(query,with_column_types=True)        df2=pd.DataFrame(df)       df2.columns=[x[0] for x in types]    return df2

 我们通过以下代码展示database,其中我们创建新的table将会在default database中:

clickhouse_query('show databases')

五,导入数据

ClickHouse能够访问的文件夹是在第一次运行服务器的路径当中,名称为 user_files,我们将本机的数据文件放在该文件夹中(示例为instown.file1.parquet),即可通过SQL语句创建tables,我们使用以下函数链接ClickHouse-client。

import clickhouse_connectclient = clickhouse_connect.get_client(host='localhost',    port=8123,    user='default',    password='',    database='default')

使用以下SQL语句在ClickHouse服务器中创建table,因为ClickHouse可以直接读取parquet文件,因此能够直接获取列名和每一列的格式和数值直接创建数据表。

client.command('''create table file1engine = MergeTreeorder by tuple() as select *from file('instown.file1.parquet', Parquet)''')
clickhouse_query('''show tables''')

 

六、数据查询 

经过同样的操作,我们的数据库已经基本完成,接下来我们使用SQL语句来进行数据查询:

show tables

 select count(*) from file1

只要正确连接服务器,以上SQL语句也可在jupyter等环境中执行,clickhouse_query是已经定义好的Python函数,能够连接到本地的服务器。

clickhouse_query('''select * from file1where mgrno = 42315order by fdatelimit 5''')

七、客户端

或者可以使用DBeaver来链接我们的数据库,进行数据库管理,我们下载软件之后可以直接连接本地数据库,或者远程数据库。注意连接远程数据库时,要填写正确的主机和端口号,以及拥有访问权限的用户名和密码 :

成功链接之后就可以管理我们的数据库了,执行相应的SQL语句我们可以直观的看到运行结果,也可在左侧看到databases和tables,注意创建table一般需要刷新才能看到结果。

八、总结

通过以上步骤,我们简单建立起一个本地数据,方便我们进行大数据的查询和分析工作,ClickHouse 使用基于列(columnar)的存储引擎,而不是基于行(row-based)的存储引擎。这意味着它将每个列存储在一起,而不是将整个行存储在一起。这种存储方式允许 ClickHouse 高效地压缩数据,减少 I/O 操作和内存使用,并允许查询只读取需要的列,从而提高查询速度,这对于金融分析领域处理海量的数据是非常有帮助的。

来源地址:https://blog.csdn.net/wangzhengmao_/article/details/130299078

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯