当前位置: 首页 > news >正文

长春手机网站网站源码上传服务器了怎么做

长春手机网站,网站源码上传服务器了怎么做,三星网上商城怎么查物流,自建的电子网站如何做推广ClickHouse ClickHouse 属于 OLAP 数据库 OLTP 与 OLAP OLTP (On-Line Transaction Processing 联机事务处理), 注重事务处理, 数据记录的性能和安全性OLAP (On-Line Analytical Processing 联机分析处理), 注重数据分析, 重点在查询的性能 一般使用 OLTP 数据库做业务数据…

ClickHouse

ClickHouse 属于 OLAP 数据库

OLTP 与 OLAP

  • OLTP (On-Line Transaction Processing 联机事务处理), 注重事务处理, 数据记录的性能和安全性
  • OLAP (On-Line Analytical Processing 联机分析处理), 注重数据分析, 重点在查询的性能

一般使用 OLTP 数据库做业务数据存储, 用 OLAP 数据库做查询分析.

ClickHouse 性能

  • 写入性能很高, 基本能到磁盘读写瓶颈
  • 适合宽表查询, 在JOIN查询时, 关联表需要控制在千万级别以内
  • 分布式场景下需要预先规划容量, 对于持续扩容需求的场景运维成本比较高
  • 支持全文搜索(inverted index, by n-gram or token), 具体讨论可以看这个讨论, 当前还处于experimental
  • 仅支持有限的事务, 保证INSERT过程的原子性, 包括写入和读取
  • 不支持 Windows. 虽然可以通过 WSL, Docker 之类运行在 Win10 上, 但是这样的方式仅仅是"能运行", 性能已经大打折扣, 没有实用价值.

在需要复杂查询的分布式场景, 可以考虑 Apache Doris.

安装

硬件需求

  • 硬盘安装需要2.5G空间
  • 内存不小于4G, 推荐16G以上, 越大越好
  • SSD + RAID, 文件格式 Ext4, XFS
  • 集群部署, 建议使用10G(万兆)网络

Ubuntu 安装

sudo apt-get install -y apt-transport-https ca-certificates dirmngr
# 在 /tmp 下创建临时目录
GNUPGHOME=$(mktemp -d)
echo $GNUPGHOME
# 生成 clickhouse-keyring.gpg
sudo GNUPGHOME="$GNUPGHOME" gpg --no-default-keyring --keyring /usr/share/keyrings/clickhouse-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8919F6BD2B48D754
sudo rm -r "$GNUPGHOME"
sudo chmod +r /usr/share/keyrings/clickhouse-keyring.gpg
# 创建 ck 的 apt list
echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg] https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
# 更新软件包
sudo apt-get update
# 安装
sudo apt install -y clickhouse-server clickhouse-client

Centos7安装

sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client

CK 文件结构

  • 配置文件 /etc/clickhouse-server, config.xml 全局配置, users.xml 用户配置
  • 存储目录 /var/lib/clickhouse
    • 路径定义: /etc/clickhouse-server/config.xml <path>/var/lib/clickhouse/</path>, <tmp_path>/var/lib/clickhouse/tmp/</tmp_path>, <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
  • 日志路径 /var/log/clickhouse-server/, clickhouse-server.err.log clickhouse-server.log

服务管理

启动服务

sudo systemctl start clickhouse-server
sudo systemctl status clickhouse-server

服务IP和端口

默认只侦听本地请求, 打开服务端口, 编辑 /etc/clickhouse-server/config.xml

sudo chmod 600 /etc/clickhouse-server/config.xml
sudo vi /etc/clickhouse-server/config.xml

取消注释, 同时服务IPv6和IPv4

<listen_host>::</listen_host>

如果只需要提供IPv4, 可以取消这一行注释

<listen_host>0.0.0.0</listen_host>

这两行不能同时取消注释, 启动会报错

用户管理

ClickHouse 的用户分两种

  • 直接配置在 /etc/clickhouse-server/user.xml 中的用户, 例如 default
  • 在SQL中创建的用户

这两种用户的登录方式是一样的

配置用户口令

打开 /etc/clickhouse-server/user.xml 能看到设置用户口令相关的说明, 默认用户 default 的口令为空

简单的说就是

  • 明文口令直接用<password>qwerty</password>进行设置
  • SHA256口令用<password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
  • Double SHA1口令用<password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>
  • LDAP验证用<ldap><server>my_ldap_server</server></ldap>
  • Kerberos验证用<kerberos><realm>EXAMPLE.COM</realm></kerberos>

相应的口令生成命令

# SHA256
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
cY19OvVH                                                           <-- 口令
e17cd697e0845d75d2068ae1e1479d3fd10d76e5afa89724fbc6fe27554526e4   <-- SHA256结果# Double SHA1
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
1gQO8XpM                                       <-- 口令
e9fdf3480016dfae8ad0170e846edd031180a3f4       <-- Double SHA1结果

如果 Centos7 下没有 xxd 命令, 需要通过以下命令安装

sudo yum install vim-common

如果需要增加位数

PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
vlIlWHFqY0BbSy2f
e08ebd515246f1b5f3bfdb24b967a797b7218289b263ed0fbb3ff47fcc121f1b

如果需要自定义

PASSWORD=asdf1234; echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
asdf1234
dda7b4594264195da8bb303516d7ec5509b7b942 

通过 user.d 下的 xml 增加用户

例如新增一个带管理权限的用户 dbowner, 可以在 /etc/clickhouse-server/user.d 下创建文件 dbowner.xml, 内容为

<clickhouse><users><dbowner><password>abcd1234</password><networks><ip>::/0</ip></networks><profile>default</profile><quota>default</quota><access_management>1</access_management></dbowner></users>
</clickhouse>

上面这个配置

  • 用户名为 dbowner
  • 口令为明文的 abcd1234
  • 网络来源: 所有IPv6, IPv4 地址
  • 允许使用管理权限(通过 access_management = 1)

clickhouse启动时, 会将 user.d 下的配置文件与 user.xml 合并, 并覆盖 user.xml 中重复的部分. 注意这个文件的权限, 需要将这个文件的owner设为 clickhouse, 否则 clickhouse 启动后读取会失败.

sudo chown clickhouse:clickhouse dbowner.xml

通过 SQL 增加用户, 并配置权限

具体的用户权限配置, 参考 ClickHouse 官方说明

https://clickhouse.com/docs/en/operations/access-rights

上面添加的 dbowner 用户只开启了 access_management, 默认情况下 SQL-driven access control 和 account management都是关闭的, 如果要启用完整的 SQL user mode, 要在<dbowner>下增加的配置为

<access_management>1</access_management>
<named_collection_control>1</named_collection_control>
<show_named_collections>1</show_named_collections>
<show_named_collections_secrets>1</show_named_collections_secrets>

在安装 ClickHouse 的机器上, 使用上面创建的 dbowner 登入 client, 并创建一个新用户 dbroot, 授予全部权限

$ clickhouse-client --user dbowner --password abcd1234:) CREATE USER dbroot IDENTIFIED BY 'root1234';
CREATE USER dbroot IDENTIFIED WITH sha256_hash BY '21AC41BC256B35A32EC2021D359AE5F297AD7ED2F8ED8F7A2A1A7B9F1F94F898' SALT '56DC39142C0AEB19BC2C61AACBD9F27DD040E25489CC29B76D07D65F6D2A3AA1'
Query id: d0099db9-b292-4905-84bd-a91da19f8edc
Ok.
0 rows in set. Elapsed: 0.005 sec. 

创建用户成功, 但是授予权限时报错了

:) GRANT ALL ON *.* TO dbroot WITH GRANT OPTION;
GRANT ALL ON *.* TO dbroot WITH GRANT OPTION
Query id: 92a50da8-d847-4f4f-a74c-95b9f1207a67
0 rows in set. Elapsed: 0.007 sec. Received exception from server (version 23.4.2):
Code: 497. DB::Exception: Received from localhost:9000. DB::Exception: dbowner: Not enough privileges. To execute this query it's necessary to have grant SHOW, SELECT, INSERT, ALTER, CREATE, DROP, UNDROP TABLE, TRUNCATE, OPTIMIZE, BACKUP, KILL QUERY, KILL TRANSACTION, MOVE PARTITION BETWEEN SHARDS, ACCESS MANAGEMENT, NAMED COLLECTION CONTROL, SYSTEM, dictGet, INTROSPECTION, SOURCES ON *.* WITH GRANT OPTION. (ACCESS_DENIED)

给dbowner增加以下权限

<named_collection_control>1</named_collection_control>
<show_named_collections>1</show_named_collections>
<show_named_collections_secrets>1</show_named_collections_secrets>

重启 ClickHouse 后再执行, 就能授权成功

:) GRANT ALL ON *.* TO dbroot WITH GRANT OPTION;
GRANT ALL ON *.* TO dbroot WITH GRANT OPTION
Query id: f4eaa3ce-8182-4717-9270-ce2e95eb2b88
Ok.
0 rows in set. Elapsed: 0.004 sec. 

这时候, 就可以用 dbroot / root1234 登录 ClickHouse 了

连接

使用 clickhouse-client

clickhouse-client --user [user] --password [password]

使用 Tabix

用Firefox访问 http://dash.tabix.io, Chrome貌似不行, 会报 CORS 错误

填写服务器地址, 默认为 http://[server_ip]:8123, 用户 default, 口令为空

使用 DBeaver

服务器地址, 默认为 http://[server_ip]:8123, 用户 default, 口令为空

常用管理命令

创建数据库

CREATE DATABASE my_db;

创建表

CREATE TABLE my_db.my_table (id UInt64, column1 String) ENGINE = MergeTree() ORDER BY id;

创建用户

CREATE USER my_user IDENTIFIED BY 'password';

授予权限

# my_db下所有表的 ALTER 权限
GRANT ALTER ON my_db.* WITH GRANT OPTION;# my_db下my_table表的 ALTER 权限
GRANT ALTER ON my_db.my_table TO my_user;# 多个权限
GRANT SELECT, ALTER COLUMN ON my_db.my_table TO my_user WITH GRANT OPTION;

权限树

├── ALTER (only for table and view)/
│   ├── ALTER TABLE/
│   │   ├── ALTER UPDATE
│   │   ├── ALTER DELETE
│   │   ├── ALTER COLUMN/
│   │   │   ├── ALTER ADD COLUMN
│   │   │   ├── ALTER DROP COLUMN
│   │   │   ├── ALTER MODIFY COLUMN
│   │   │   ├── ALTER COMMENT COLUMN
│   │   │   ├── ALTER CLEAR COLUMN
│   │   │   └── ALTER RENAME COLUMN
│   │   ├── ALTER INDEX/
│   │   │   ├── ALTER ORDER BY
│   │   │   ├── ALTER SAMPLE BY
│   │   │   ├── ALTER ADD INDEX
│   │   │   ├── ALTER DROP INDEX
│   │   │   ├── ALTER MATERIALIZE INDEX
│   │   │   └── ALTER CLEAR INDEX
│   │   ├── ALTER CONSTRAINT/
│   │   │   ├── ALTER ADD CONSTRAINT
│   │   │   └── ALTER DROP CONSTRAINT
│   │   ├── ALTER TTL/
│   │   │   └── ALTER MATERIALIZE TTL
│   │   ├── ALTER SETTINGS
│   │   ├── ALTER MOVE PARTITION
│   │   ├── ALTER FETCH PARTITION
│   │   └── ALTER FREEZE PARTITION
│   └── ALTER LIVE VIEW/
│       ├── ALTER LIVE VIEW REFRESH
│       └── ALTER LIVE VIEW MODIFY QUERY
├── ALTER DATABASE
├── ALTER USER
├── ALTER ROLE
├── ALTER QUOTA
├── ALTER [ROW] POLICY
└── ALTER [SETTINGS] PROFILE

查看权限

SHOW GRANTS FOR  my_user;

可以看下只开了access_management的 default 和完整权限的 dbroot 的权限差别

:) show grants for dbroot;
┌─GRANTS FOR dbroot────────────────────────────┐
│ GRANT ALL ON *.* TO dbroot WITH GRANT OPTION │
└──────────────────────────────────────────────┘:) show grants for default;
┌─GRANTS FOR default─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, UNDROP TABLE, TRUNCATE, OPTIMIZE, BACKUP, KILL QUERY, KILL TRANSACTION, MOVE PARTITION BETWEEN SHARDS, SYSTEM, dictGet, INTROSPECTION, SOURCES, CLUSTER ON *.* TO default │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

取消权限

REVOKE ALTER COLUMN ON my_db.my_table FROM my_user;

相关链接

  • https://jishuin.proginn.com/p/763bfbd59c4b
  • https://zhuanlan.zhihu.com/p/421469439
  • https://www.tinybird.co/blog-posts/text-search-at-scale-with-clickhouse
  • https://clickhouse.com/blog/clickhouse-search-with-inverted-indices
http://www.yayakq.cn/news/171572/

相关文章:

  • 河南省建设监理协会网站证书查询江苏中小企业网站建设
  • 免费申请域名的网站免费查公司
  • 大良营销网站建设策划三亚谁做网站
  • 东莞做网站那家好c 网站开发技术
  • 江苏润通市政建设工程有限公司网站网站开发工资如何
  • 岳阳网站推广wordpress 右侧边栏
  • python用于网站开发东莞电商网页设计
  • 中国网络重庆seo培训
  • 江西建设职业技能教育咨询网站网站开发流程图工具
  • 网站开发需要用到的相关技术系统官网网站模板下载
  • 企业推广类网站wordpress能做外贸网站
  • 廉江网站制作建设银行河北省分行官方网站
  • 有了域名和主机怎么做网站厚街镇仿做网站
  • 合肥专业网站优化哪家好江苏省住房和城乡建设厅
  • 模板网站 建设 方法谷歌官网入口
  • 购买网站空间自己怎样建立网站廊坊高端网站建设
  • 织梦网站怎么关闭一个完整的项目计划书
  • 抖音小程序怎么入驻商城类的网站怎么做优化
  • 网站推广方式和手段上海公司注册代理记账
  • 网站开发制作心得阜新网站建设单位
  • 毕设做系统与网站个人网站 目的
  • 怎么做加密网站东莞贸易网站建设
  • 建设小辣猫的网站网站优化知识资讯
  • 网站安全监测预警平台建设成效做木箱的网站
  • 购物网站有哪些网站管理员权限
  • 天津实体店网站建设汕头建站方案
  • 专注网站建设怎么样网站建设的分工内容
  • 网站开发软硬件环境是指什么流量变现推广平台
  • 网站搭建学什么软件网页版微信二维码怎么弄
  • 百度医疗网站建设夏都通app下载最新版本