MySQL数据同步到数据仓库的方案
由于历史原因,MySQL是使用的最多,也是首选的数据库,但当数据量达到千万级别,并有在线分析的需求时,读大于写,MySQL的响应就会越来越慢,直接检索MySQL不但不能得到快速的响应,反而会影响写入性能。
此时,将MySQL数据同步到数据仓库中,从数据仓库中来检索数据就变得非常有必要了。
Home of Little Jelly
由于历史原因,MySQL是使用的最多,也是首选的数据库,但当数据量达到千万级别,并有在线分析的需求时,读大于写,MySQL的响应就会越来越慢,直接检索MySQL不但不能得到快速的响应,反而会影响写入性能。
此时,将MySQL数据同步到数据仓库中,从数据仓库中来检索数据就变得非常有必要了。
ClickHouse基本概念和使用注意事项。
首先解释下ClickHouse是什么?ClickHouse是俄国人搞出来的一个列式数据仓库,以应对实时的数据查询分析,经常被拿来和ElasticSearch作比较。
基本概念
1. 集群
2. 分片
3. 数据库
4. 表
ElasticSearch Mongo MySQL文档存储及检索对比。
测试环境:
1. 硬件配置:2核2G内存
2. 部署方式:Docker
3. CentOS 8.4
4. PHP 7.4.23
MySQL全文检索解析器ngram自版本5.7.6可用。
ngram_token_size变量
`ngram_token_size`默认为2,表示按最小两个字来分词,比如”十六”,单个词如”六”是检索不出来的,需要将`ngram_token_size`设置为1。
MySQL8引入了一些新特性,也有一些改动,升级的时候要注意下。
Authentication 身份认证
身份认证时默认使用的是`caching_sha2_password`,而之前的版本是`mysql_native_password`,老的程序不兼容,比如MySQL管理工具`Sequel Pro`等。
PHP要使用XdevAPI扩展连接MySQL8,首先要安装MySQL8,而且需要为PHP安装配置`mysql_xdevapi`扩展,见之前的教程[PHP8安装MySQL xdevapi扩展](https://www.pimspeak.com/php8-mysql-xdevapi-extension.html)。
装好之后就可以连接了。
示例代码
要在PHP中使用MySQL8的文档存储Document Store,需要配置`mysql_xdevapi`扩展。配置过程比较复杂,依赖颇多,详细步骤如下。
环境:CentOS8 + PHP8 + MySQL8
首先安装gcc
在Docker中使用MySQL还是很方便的。
MySQL 5.7版本创建命令
MySQL默认只能从本机访问,如果要允许用户外网访问,需要修改相关权限。 先使用MySQL自带的终端命令登录 mysql -uroot -p 成功后切数据库mysql,并为相关用户修改权限,这里以root为例 use mysql; update user set Host='%' where Host='localhost'; grant all privileges on *.* to 'root'@'%'; flush privileges; 执行完后就可以外网访问了。 点击量: 459
NodeJS使用MySQL入门教程。
安装依赖
npm install mysql