使用ClickHouse建立本地数据库(MACOS系统)
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