备份恢复
目前Clickhouse的备份方式有以下几种:
文本文件导入导出
表快照【略,类似 insert into a_new select * from a】
磁盘快照【略】
ALTER TABLE…FREEZE
备份工具Clickhouse-Backup
当前版本0.6.3还无法很好的备份clickhouse 20.10+
不会备份metadata的数据
无法直接使用 restore 功能
Clickhouse-Copier【需要ZK环境,未做演示】
1. 导出csv方式备份
1.1 导出csv
clickhouse中,数据文件大小为 900M,实际导出会远大于900M,语句 20G左右【测试时没执行完成】
clickhouse-client --query="select * from yqtest.hits_v1" > /clickhouse/backup/yqtest.hits_v1.tsv
1.2 从csv导入
需要先建好表,因此最好备份下metadata数据
cat hits_v1.tsv | clickhouse-client --query "INSERT INTO yqtest.hits_v1 FORMAT TSV" --max_insert_block_size=100000
2. ALTER TABLE…FREEZE
语法:
ALTER TABLE table_name FREEZE [PARTITION partition_expr]
该操作为指定分区创建一个本地备份。 如果 PARTITION 语句省略,该操作会一次性为所有分区创建备份。整个备份过程不需要停止服务
注意:FREEZE PARTITION 只复制数据, 不备份元数据. 元数据默认在文件 /var/lib/clickhouse/metadata/database/table.sql
2.1 备份
2.1.1 确认shadow目录为空:
默认位置:/var/lib/clickhouse/shadow/,若没执行过则还不存在此文件,会生成在设置的数据路径下
2.1.2 把临时分区的数据,合并到已有分区中
OPTIMIZE TABLE yqtest.visits_v1 PARTITION '2014-03' FINAL;
或
OPTIMIZE TABLE yqtest.visits_v1 FINAL;
2.1.3 冻结备份
echo -n 'alter table yqtest.visits_v1 freeze' | clickhouse-client
查看备份
[root@localhost ~]# ll /clickhouse/data/shadow/
total 4
drwxr-x---. 3 clickhouse clickhouse 19 Jan 13 01:17 1
-rw-r-----. 1 clickhouse clickhouse 2 Jan 13 01:17 increment.txt
[root@localhost ~]# du -sh /clickhouse/data/shadow/*
529M /clickhouse/data/shadow/1
4.0K /clickhouse/data/shadow/increment.txt
2.1.4 将备份保存
因为 /shadow/ 目录下次备份时候需要清空,因此将备份迁移到指定路径
mv /clickhouse/data/shadow/* /clickhouse/backup/
-- 同时备份下表结构
cp /clickhouse/data/metadata/yqtest/visits_v1.sql /clickhouse/backup/
2.2 手动恢复
drop table visits_v1;
创建表,表不存在则根据备份的表结构创建,只需要将ATTACH修改为CREATE即可
目录数据恢复
cp -rl /clickhouse/backup/shadow/1/store/965/9653cc71-1378-40a1-9790-881a375c0717/* /clickhouse/data/data/yqtest/visits_v1/detached
chown -R clickhouse.clickhouse /clickhouse/data/data/yqtest/visits_v1/detached/*
将数据添加到表 根据/clickhouse/data/data/yqtest/visits_v1/detached
看分区名称,结合表分区键 PARTITION BY toYYYYMM(StartDate)
# 授权
echo 'alter table yqtest.visits_v1 attach partition 201403' | clickhouse-client
3. Clickhouse-Backup
官方路径:https://github.com/AlexAkulov/clickhouse-backup
特征
轻松创建和还原所有或特定表的备份
在文件系统上高效存储多个备份
通过流压缩上传和下载
支持远程存储上的增量备份
适用于AWS,Azure,GCS,腾讯COS,FTP
局限性
支持高于1.1.54390和20.10之前的ClickHouse
仅MergeTree系列表引擎
备份“分层存储”或storage_policy不支持!
不支持在ClickHouse 20.10中默认启用的“原子”数据库引擎!
云存储上的最大备份大小为5TB
AWS S3上的最大零件数为10,000(如果您的数据库大于1TB,则增加part_size)
3.1 rpm安装
wget https://github.com/AlexAkulov/clickhouse-backup/releases/download/v0.6.3/clickhouse-backup-0.6.3-1.x86_64.rpm
rpm -ivh clickhouse-backup-0.6.3-1.x86_64.rpm
[root@localhost ~]# clickhouse-backup -v
Version: 0.6.3
Git Commit: 3a8f0619478b8b997ab520e9ae75b45f7f134bc7
Build Date: 2020-12-15
3.2 更改配置文件
vi /etc/clickhouse-backup/config.yml
general:
remote_storage: none
disable_progress_bar: false
backups_to_keep_local: 7
backups_to_keep_remote: 31
clickhouse:
username: default
password: ""
host: localhost
port: 9000
data_path: "/clickhouse/data"
skip_tables:
- system.*
timeout: 5m
freeze_by_part: false
secure: false
skip_verify: false
backups_to_keep_local: 7 # 本地备份保留个数,默认0表示不自动做备份清理
backups_to_keep_remote: 31 # 远程备份保留个数
3.3 查看可备份的表
clickhouse-backup tables
3.4 备份
3.4.1 创建全库备份
全库备份,默认会在数据目录下新建一个backup目录,数据存放在backup下
默认创建一个时间目录(时间是UTC的)
[root@localhost ~]# clickhouse-backup create `date "+%Y-%m-%dT%H-%M-%S"`
2021/01/13 05:49:32 Create backup '2021-01-13T05-49-31'
2021/01/13 05:49:32 Skip 'system.asynchronous_metric_log'
2021/01/13 05:49:32 Skip 'system.metric_log'
2021/01/13 05:49:32 Skip 'system.query_log'
2021/01/13 05:49:32 Skip 'system.query_thread_log'
2021/01/13 05:49:32 Skip 'system.trace_log'
2021/01/13 05:49:32 Freeze 'yqtest.hits_v1'
2021/01/13 05:49:32 Freeze 'yqtest.visits_v1'
2021/01/13 05:49:32 Freeze 'yqtest.visits_v1_1'
2021/01/13 05:49:32 Copy part hashes
2021/01/13 05:49:32 Skip 'system.asynchronous_metric_log'
2021/01/13 05:49:32 Skip 'system.metric_log'
2021/01/13 05:49:32 Skip 'system.query_log'
2021/01/13 05:49:32 Skip 'system.query_thread_log'
2021/01/13 05:49:32 Skip 'system.trace_log'
2021/01/13 05:49:32 Writing part hashes
2021/01/13 05:49:32 Copy metadata
2021/01/13 05:49:32 Done.
2021/01/13 05:49:32 Move shadow
2021/01/13 05:49:32 Done.
默认情况下备份包含两个目录
metadata 目录: 包含重新创建所需的 DDL SQL
shadow 目录: 包含作为ALTER TABLE ... FREEZE操作结果的数据。 注意:
截止当前版本【0.6.3
】,还不支持 clickhouse 20.10+
的版本,数据会备份,但是元数据不被备份
3.4.2 单表备份
备份语法: clickhouse-backup create [-t, --tables=.]
# 单表备份
clickhouse-backup create -t yqtest.hits_v1 `date "+%Y-%m-%dT%H-%M-%S"`
3.4.3 多表备份
# 多表备份
clickhouse-backup create -t yqtest.hits_v1,yqtest.visits_v1 `date "+%Y-%m-%dT%H-%M-%S"`
3.5 恢复
恢复语法: clickhouse-backup restore 备份名称
[root@localhost ~]# clickhouse-backup restore --help
NAME:
clickhouse-backup restore - Create schema and restore data from backup
USAGE:
clickhouse-backup restore [--schema] [--data] [-t, --tables=.]
OPTIONS:
--config FILE, -c FILE Config FILE name. (default: "/etc/clickhouse-backup/config.yml") [$CLICKHOUSE_BACKUP_CONFIG]
--table value, --tables value, -t value
--schema, -s Restore schema only
--data, -d Restore data only
--rm, --drop Drop table before restore
--table,--tables,-t 恢复特定的表
--schema, -s 只恢复表结构
--data, -d 只恢复数据
--rm, --drop 在恢复前删除表
3.5.1 恢复被删除的表
[root@localhost ~]# clickhouse-backup restore -t yqtest.test2 2021-01-13T15-04-09;
2021/01/13 15:06:04 Create table 'yqtest.test2'
2021/01/13 15:06:04 Prepare data for restoring 'yqtest.test2'
2021/01/13 15:06:04 ALTER TABLE `yqtest`.`test2` ATTACH PART '20140317_20140319_2_2_0'
2021/01/13 15:06:04 ALTER TABLE `yqtest`.`test2` ATTACH PART '20140317_20140323_1_1_0'
3.5.2 仅恢复表结构
clickhouse-backup restore -t yqtest.test2 --schema
3.5.3 仅表数据
clickhouse-backup restore -t yqtest.test2 --data
3.6 查看删除备份
3.6.1 查看备份
clickhouse-backup list
3.6.2 删除备份文件
clickhouse-backup delete local 2021-01-12T10-14-50
3.6.3 清除shadow下的临时备份文件
clickhouse-backup clean
3.7 恢复测试
3.7.1 测试数据
localhost :) use yqtest;
localhost :) show tables;
┌─name──────┐
│ hits_v1 │
│ test1 │ # 50000
│ test2 │ # 152000
│ test3 │ # 10000
│ v_test │
│ visits_v1 │
└───────────┘
3.7.2 进行一次备份
[root@localhost backup]# clickhouse-backup create `date "+%Y-%m-%dT%H-%M-%S"`
2021/01/13 15:46:33 Create backup '2021-01-13T15-46-33'
2021/01/13 15:46:33 Skip 'system.asynchronous_metric_log'
2021/01/13 15:46:33 Skip 'system.metric_log'
2021/01/13 15:46:33 Skip 'system.query_log'
2021/01/13 15:46:33 Skip 'system.query_thread_log'
2021/01/13 15:46:33 Skip 'system.trace_log'
2021/01/13 15:46:33 Freeze 'yqtest.hits_v1'
2021/01/13 15:46:33 Freeze 'yqtest.test1'
2021/01/13 15:46:33 Freeze 'yqtest.test2'
2021/01/13 15:46:33 Freeze 'yqtest.test3'
2021/01/13 15:46:33 Freeze 'yqtest.v_test'
2021/01/13 15:46:33 Freeze 'yqtest.visits_v1'
2021/01/13 15:46:33 Copy part hashes
2021/01/13 15:46:33 Skip 'system.asynchronous_metric_log'
2021/01/13 15:46:33 Skip 'system.metric_log'
2021/01/13 15:46:33 Skip 'system.query_log'
2021/01/13 15:46:33 Skip 'system.query_thread_log'
2021/01/13 15:46:33 Skip 'system.trace_log'
2021/01/13 15:46:33 Writing part hashes
2021/01/13 15:46:33 Copy metadata
2021/01/13 15:46:33 Done.
2021/01/13 15:46:33 Move shadow
2021/01/13 15:46:33 Done.
# 备份的文件,可看到缺少了metadata文件
[root@localhost backup]# ll /clickhouse/data/backup/2021-01-13T15-46-33/
total 4
-rw-r--r--. 1 root root 3455 Jan 13 15:46 parts.hash
drwxr-xr-x. 8 root root 72 Jan 13 15:46 shadow
# 手动复制下metadata过来
[root@localhost ~]# cd /clickhouse/data/backup/test_backup/
[root@localhost test_backup]# cp -r /clickhouse/data/metadata ./
[root@localhost test_backup]# ll
total 4
drwxr-x---. 2 root root 104 Jan 13 15:48 metadata
-rw-r--r--. 1 root root 3455 Jan 13 15:46 parts.hash
drwxr-xr-x. 8 root root 72 Jan 13 15:46 shadow
3.7.2 数据破坏
localhost :) truncate table test1;
localhost :) insert into test2 select * from test3 limit 1000;
localhost :) drop table test3;
localhost :) show tables;
┌─name──────┐
│ hits_v1 │
│ test1 │ # 0
│ test2 │ # 153000
| | # test3被drop了
│ v_test │
│ visits_v1 │
└───────────┘
3.7.3 恢复被删除表
当前测试恢复数据的版本是 20.5.4.40,备份是直接存在 metadata 信息的
[root@localhost ~]# clickhouse-backup restore -t yqtest.test3 2021-01-13T15-04-09;
2021/01/13 15:06:04 Create table 'yqtest.test3'
2021/01/13 15:06:04 Prepare data for restoring 'yqtest.test2'
2021/01/13 15:06:04 ALTER TABLE `yqtest`.`test3` ATTACH PART '20140317_20140319_2_2_0'
2021/01/13 15:06:04 ALTER TABLE `yqtest`.`test3` ATTACH PART '20140317_20140323_1_1_0'
实测复制 metadata过来在使用新引擎的情况下【20.10+】,当前备份工具无法正常恢复【0.6.3】
4 当前版本clickhouse-backup[0.6.3]无法支持20.10+的问题处理方案
当前版本【0.6.3】备份 20.10+ 的clickhouse时,因为不支持 Atomic 引擎,无法正常备份元数据
也无法直接使用 restore 进行恢复
4.1 处理思路
4.2 测试
4.2.1 测试数据
show tables;
┌─name──────┐
│ test1 │ # 50000
│ test2 │ # 151000
│ test3 │ # 10000
└───────────┘
4.2.2 备份数据
[root@localhost ~]# clickhouse-backup create `date "+%Y-%m-%dT%H-%M-%S"`
2021/01/14 15:44:40 Create backup '2021-01-14T15-44-40'
2021/01/14 15:44:40 Skip 'system.asynchronous_metric_log'
2021/01/14 15:44:40 Skip 'system.metric_log'
2021/01/14 15:44:40 Skip 'system.query_log'
2021/01/14 15:44:40 Skip 'system.query_thread_log'
2021/01/14 15:44:40 Skip 'system.trace_log'
2021/01/14 15:44:40 Freeze 'yqtest.test1'
2021/01/14 15:44:40 Freeze 'yqtest.test2'
2021/01/14 15:44:40 Freeze 'yqtest.test3'
2021/01/14 15:44:40 Copy part hashes
2021/01/14 15:44:40 Skip 'system.asynchronous_metric_log'
2021/01/14 15:44:40 Skip 'system.metric_log'
2021/01/14 15:44:40 Skip 'system.query_log'
2021/01/14 15:44:40 Skip 'system.query_thread_log'
2021/01/14 15:44:40 Skip 'system.trace_log'
2021/01/14 15:44:40 Writing part hashes
2021/01/14 15:44:40 Copy metadata
2021/01/14 15:44:40 Done.
2021/01/14 15:44:40 Move shadow
2021/01/14 15:44:40 Done.
当前备份
[root@localhost ~]# ll /clickhouse/data/backup/2021-01-14T15-44-40/
total 4
-rw-r--r--. 1 root root 3087 Jan 14 15:44 parts.hash
drwxr-xr-x. 8 root root 72 Jan 14 15:44 shadow
4.2.4 备份metadata
由于clickhouse-backup 当前版本不会备份metadata,因此自己复制一份metadata数据
cp -r /clickhouse/data/metadata /clickhouse/data/backup/2021-01-14T15-44-40/
[root@localhost 2021-01-14T15-44-40]# ll /clickhouse/data/backup/2021-01-14T15-44-40/
total 4
drwxr-x---. 2 root root 104 Jan 14 15:45 metadata # 复制过来了
-rw-r--r--. 1 root root 3087 Jan 14 15:44 parts.hash
drwxr-xr-x. 8 root root 72 Jan 14 15:44 shadow
4.2.3 破坏数据
truncate table test1;
insert into test2 select * from test3 limit 1000;
drop table test3;
show tables;
┌─name──────┐
│ test1 │ # 0
│ test2 │ # 152000
│ │ # 表test3被删除
└───────────┘
4.2.4 恢复
4.2.4.1 恢复被truncate的表
表结构还存在,数据不存在了,需要恢复数据
可以使用 cat parts.hash 查看备份目录记录的表对应关系
# 1.拷贝数据到原始目录下
[root@localhost ~]# cp -rl /clickhouse/data/backup/2021-01-14T15-44-40/shadow/a83/a83cbe35-16c7-417b-b59f-a72cec7d9d54/* /clickhouse/data/data/yqtest/test1/detached/
# 2.授权
[root@localhost ~]# chown -R clickhouse.clickhouse /clickhouse/data/data/yqtest/test1/detached/
[root@localhost ~]# ll /clickhouse/data/data/yqtest/test1/detached/
total 20
drwxr-xr-x. 2 clickhouse clickhouse 16384 Jan 14 16:38 201403_1_1_0
# 3.恢复,可查看到数据已恢复
[root@localhost ~]# echo 'alter table yqtest.test1 attach partition 201403' | clickhouse-client
localhost :) select count(*) from test1;
┌─count()─┐
│ 50000 │
└─────────┘
4.2.4.1 恢复被drop的表
表test3被删除了,表结构不存在了,需要从metadata备份中获取表结构
# 1.获取表结构,修改第一行 ATTACH TABLE _ UUID 'xxxx' 为 create,然后执行创建表
cat /clickhouse/data/backup/2021-01-14T15-44-40/metadata/yqtest/test3.sql
# 2.拷贝数据到目标目录下
[root@localhost ~]# cp -rl /clickhouse/data/backup/2021-01-14T15-44-40/shadow/b62/b62958a6-7a52-47ca-9707-2ed9db0eaa93/* /clickhouse/data/data/yqtest/test3/detached/
# 3.授权
chown -R clickhouse.clickhouse /clickhouse/data/data/yqtest/test3/detached/
# 4.恢复,可查看到数据已恢复
[root@localhost ~]# echo 'alter table yqtest.test3 attach partition 201403' | clickhouse-client
localhost :) show tables;
┌─name──────┐
│ test1 │ # 50000
│ test2 │ # 152000
│ test3 │ # 10000
└───────────┘
你可能感兴趣的:(ClickHouse 备份恢复)
ExpRe[25] bash外的其它shell:zsh和fish
tritone
ExpRe bash linux ubuntu shell
文章目录zsh基础配置实用特性插件`autojump`语法高亮自动补全fish优点缺点时效性本篇撰写时间为2021.12.15,由于计算机技术日新月异,博客中所有内容都有时效和版本限制,具体做法不一定总行得通,链接可能改动失效,各种软件的用法可能有修改。但是其中透露的思想往往是值得学习的。本篇前置:ExpRe[10]Ubuntu[2]准备神秘软件、备份恢复软件https://www.cnblogs
全面指南:用户行为从前端数据采集到实时处理的最佳实践
数字沉思
营销 流量运营 系统架构 前端 内容运营 大数据
引言在当今的数据驱动世界,实时数据采集和处理已经成为企业做出及时决策的重要手段。本文将详细介绍如何通过前端JavaScript代码采集用户行为数据、利用API和Kafka进行数据传输、通过Flink实时处理数据的完整流程。无论你是想提升产品体验还是做用户行为分析,这篇文章都将为你提供全面的解决方案。设计一个通用的ClickHouse表来存储用户事件时,需要考虑多种因素,包括事件类型、时间戳、用户信
从底层原理上理解ClickHouse 中的稀疏索引
goTsHgo
大数据 分布式 Clickhouse 数据库 clickhouse
稀疏索引(SparseIndexes)是ClickHouse中一个重要的加速查询机制。与传统数据库使用的B-Tree或哈希索引不同,ClickHouse的稀疏索引并不是为每一行数据构建索引,而是为数据存储的块或部分数据生成索引。这种索引的核心思想是通过减少需要扫描的数据范围来加速查询,特别适用于大数据量场景。1.基本概念:数据存储与索引在理解稀疏索引之前,首先需要理解ClickHouse的列式存储
ClickHouse 高性能的列式数据库管理系统
小丁学Java
ClickHouse clickhouse 数据库
ClickHouse是一个高性能的列式数据库管理系统(DBMS),主要用于在线分析处理查询(OLAP)。以下是对ClickHouse的详细介绍:基本信息:来源:由俄罗斯的Yandex公司于2016年开源。全称:ClickStream,DataWareHouse,简称ClickHouse。创始人:AaronKatz、AlexeyMilovidov、YuryIzrailevsky。主要特点:高性能:能
对话 ClickHouse 创始人 Alexey:不仅是数据库,所有的数据处理系统都能从 AI 受益
AI科技大本营
clickhouse 数据库 人工智能
“Alexey,你希望ClickHouse的未来怎么发展?”我希望ClickHouse成为最流行的开源分析数据库,从此任何人考虑分析数据库的时候,脑海里第一个也是显而易见的选择就是ClickHouse。顺便说一句,我们其实已经是最流行的开源分析数据库了,所以我想让这个现状保持下去,以便更多的人能知道这一点。作者|王启隆出品|《新程序员》编辑部当今的分析型数据库领域,ClickHouse是最闪亮的名
clickhouse-v24.1-离线部署
Wonderful呀
数据库 clickhouse 数据库 运维 linux
部署版本数据库版本:24.1.1.2048jdk版本:jdk84个文件(三个ck的包):OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tarclickhouse-client-24.1.1.2048.x86_64.rpmclickhouse-common-static-24.1.1.2048.x86_64.rpmclickhouse-server-24.1.1.
starrocks和clickhouse数据库比较
CodeMaster_37714848
clickhouse 数据库
Starrocks和ClickHouse都是用于数据分析的数据库,但它们的设计理念和用途有所不同。下面是这两者的一些主要比较点:1.基础架构与设计目标Starrocks:Starrocks是一个专注于实时数据分析的平台,常用于大数据处理和商业智能应用。它设计用于高效处理大规模数据集,并且支持复杂查询和数据处理。支持多种数据源的集成,并且可以与其他大数据技术(如Hadoop、Spark)协同工作。C
RMAN备份恢复之NETBACKUP客户端存在多个策略
ckawt40802
数据库
对于备份到带库的情况,RMAN备份的时候需要调用NETBACKUP等备份管理软件,将备份的数据写到带库上。如果备份的客户端对应多个可用的备份策略时,必须指明使用的备份策略,,否则会导致备份错误的发生。利用netbackup的图形管理界面jnbSA为客户端建立多个备份策略,这时候,如果不知道备份时使用的策略,则会导致备份的错误:$rmantarget/恢复管理器:Release10.2.0.3.0-
clickhouse对比两台机器数据
微亮之海
clickhouse
selectconcat(database,'.',name),total_rowsfromsystem.tableswhereengine='MergeTree'anddatabase!='system'andtotal_rows!=0orderbydatabase,name;两台机器分别跑,导出数据后对比
ClickHouse与其他数据库的对比
九州Pro
ClickHouse 数据库 clickhouse 数据仓库 大数据 sql
目录1与传统关系型数据库的对比1.1性能差异1.2数据模型差异1.3适用场景差异2与其他列式存储数据库的对比2.1ApacheCassandra2.2HBase3与分布式数据库的对比3.1GoogleBigQuery3.2AmazonRedshift3.3Snowflake4ClickHouse的缺点5ClickHouse的其他优点1与传统关系型数据库的对比1.1性能差异ClickHouse是一种
Hbase、hive以及ClickHouse的介绍和区别?
damokelisijian866
hbase hive clickhouse
一、Hbase介绍:HBase是一个分布式的、面向列的开源数据库,由ApacheSoftwareFoundation开发,是Hadoop生态系统中的一个重要组件。HBase的设计灵感来源于Google的Bigtable论文,它通过提供类似于Bigtable的能力,在Hadoop之上构建了一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase主要用于存储大量结构化数据,并支持随机读写访问,
ClickHouse 分布式部署、分布式表创建及数据迁移指南
努力做一名技术
clickhouse 分布式
文章目录部署ClickHouse集群1.1环境准备1.2安装ClickHouse1.3配置集群创建分布式表2.1创建本地表2.2创建分布式表2.3删除分布式表测试分布式表3.1插入测试数据。配置和管理4.1配置监控4.2数据备份数据迁移5.1导出5.2导入部署ClickHouse集群QuantumInsights的部署将基于一个高可用的分布式ClickHouse集群,以实现对大规模数据的高效处理和
如何拿下TCP(数据库交付运维高级工程师TDSQL(MySQL版))认证
小伟C_C
数据库
如何拿下TCP认证需要掌握的知识掌握分布式OLTP数据库TDSQL(MySQL版)的产品架构与分布式特性掌握TDSQL(MySQL版)各组件的功能,以及启停方法掌握TDSQL(MySQL版)数据库实例的基本操作与使用方法掌握TDSQL(MySQL版)集群的基本操作与使用方法掌握TDSQL(MySQL版)实例备份恢复原理与操作使用,以及高可用方案的实现掌握TDSQL(MySQL版)数据同步和数据迁移
Docker-基础入门学习路线以及面试问题-不定期更新
菜腿1994
云原生 docker 容器 运维
入门学习相关博客Docker-容器的前世今生|架构Docker-安装|常用指令操作Docker-数据卷的挂载Docker-镜像迁移的三种方式=>备份恢复&公有仓库&私有仓库Docker-一文详解容器通信的基础网络模式及衍生的自定义网络模式Docker-Compose多容器同主机编排Docker-Swarm多容器跨主机的集群服务管理总结面试题1.Docker是什么?是实现容器技术的一种工具是一个开源
ClickHouse实战处理(一):MergeTree系列引擎
sheep8521
clickhouse 数据库 大数据
MergeTree作为家族系列最基础的表引擎,主要有以下特点:存储的数据按照主键排序:创建稀疏索引加快数据查询速度。支持数据分区,可以通过PARTITIONBY语句指定分区字段。支持数据副本。支持数据采样。总之适用于高负载任务的最通用和功能最强大的表引擎。可以快速插入数据并进行后续的后台数据处理。支持数据复制(使用Replicated*的引擎版本)、分区和其他引擎不支持的特性MergeTree系列
ClickHouse 二进制特征值怎么转化为字符串
树下水月
clickhouse
要将二进制特征值转化为字符串,可以使用以下方法:1.使用base64编码base64是一种将二进制数据编码为ASCII字符串的方法。在ClickHouse中,可以使用函数base64Encode()来将二进制特征值转化为base64编码的字符串。例如:SELECTbase64Encode(feature)FROMmy_table;2.使用hex编码hex是一种将二进制数据转化为十六进制字符串的方法
ClickHouse安装与使用指南
富艾霏
ClickHouse安装与使用指南clickhouseNodeJSclientforClickHouse项目地址:https://gitcode.com/gh_mirrors/clic/clickhouse项目介绍ClickHouse是由Yandex开发的一个用于在线分析处理(OLAP)的列式数据库管理系统(DBMS)。此开源项目位于https://github.com/TimonKK/click
【开端】clickhouse入门使用
奋力向前123
数据库 clickhouse
一、绪论这两天使用clickhouse进行数据分析,在使用上和mysql等关系型数据库还是有区别的,在SQL语法上也有差别,所以这里总结一下使用。二、clickhouse入门使用ClickHouse介绍ClickHouse是俄罗斯的Yandex公司于2016年开源的列式存储数据库(DBMS),它使用C++语言编写,主要面向在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。Cli
Oracle数据库的RMAN备份与恢复
一心只为学
数据库 oracle
OracleRMAN备份恢复1.什么是RMANRMAN在数据库服务器的帮助下实现数据库文件、控制文件、数据库文件和控制文件的映像副本,以及归档日志文件,数据库服务器参数文件的备份。RMAN也允许使用脚本文件实现数据的备份与恢复,而且这些脚本保存在数据库内,而不需要编写基于OS的脚本文件。RMAN备份的文件自动保存在一个系统指定的目录下,文件的名称也由RMAN自己维护。当实现数据库恢复操作时,恢复指
MySQL中如何用全库备份恢复单张表
As before@
mysql 数据库 运维
一、概述模拟场景:下面模拟逻辑备份与物理备份两种方式恢复单表方法,利用完整备份+binlog恢复单表,某天某张表意外删除,如何从全备中恢复单表?二、安装部署2.1Mysql安装(我的模拟环境数据版本为:5.7.36,此处省略相关操作)2.2xtrabackup-2.4.24安装(物理备份)官网地址:https://www.percona.com/downloads/Percona-XtraBack
ansible自动化运维项目
iangyu
运维
在自动化运维中,Ansible是一种强大的工具,它通过无代理的方式来管理配置、部署应用程序和编排复杂任务。一个典型的Ansible自动化运维项目可以包括配置管理、应用部署、补丁更新、系统监控、备份恢复等。以下是如何构建和组织一个Ansible自动化运维项目的详细指南。一、项目结构设计一个良好的Ansible项目结构有助于组织Playbooks、角色和其他配置文件。以下是一个典型的Ansible项目
恢复丢失的数据:iPhone 恢复指南
分享者花花
数据恢复 文件恢复 数据恢复软件 iphone ios 智能手机 word 手机 javascript 笔记本电脑
不小心删除了iPhone上的重要数据并意识到它没有备份?您并不孤单。在iPhone上恢复永久删除的数据似乎令人生畏,但并非总是不可能。我们将探索各种方法,包括使用专门的软件和备份恢复选项,为您提供恢复丢失数据的最佳机会。常见场景:意外删除我们都经历过这样的情况-滑动浏览我们的图库或文档,然后在我们最意想不到的时候不小心按下了删除按钮。当您意识到数据不再位于“最近删除”文件夹中并且您没有最近的备份时
MySQL 管理:全面指南
wjs2024
开发语言
MySQL管理:全面指南引言MySQL是目前最流行的开源关系数据库管理系统之一,以其高性能、易用性和可靠性而闻名。本篇文章将深入探讨MySQL的管理,包括安装、配置、性能优化、安全性和备份恢复等方面,旨在为数据库管理员和开发者提供一份全面的管理指南。目录MySQL简介MySQL安装与配置MySQL性能优化MySQL安全性管理MySQL备份与恢复MySQL高可用与集群MySQL监控与维护MySQL常
Oracle 统计信息的备份恢复机制
DBhanG
oracle 数据库
统计信息的备份恢复机制:今天说一下统计信息的备份恢复机制.从Oracle10g开始,当收集统计信息的时候,旧的统计信息会被保留,如果因为新的统计信息而出现性能问题,旧的统计信息旧可以被恢复。Oracle的历史统计信息保存在以下几张表中:WRI$_OPTSTAT_TAB_HISTORY表的统计信息WRI$_OPTSTAT_IND_HISTORY索引的统计信息WRI$_OPTSTAT_HISTHEAD
APO选择ClickHouse存储Trace的考量
云观秋毫
apo clickhouse
OpenTelemetry生态已经很成熟,但对用户而言,选择OpenTelemetry仍然需要考虑以下几个问题:探针的成熟度海量Trace数据的存储和展示的问题本文重点讨论海量Trace数据的存储与展示问题,APO定位是一个OpenTelmetry的发行版,本文将重点讨论APO团队是如何考虑这个问题的。现有OpenTelemetry的Trace存储方案OpenTelemetry生态过于灵活,选择众
clickhouse安装教程
123 黑曼巴
大数据
官网地址安装教程https://clickhouse.com/learn/lessons/gettingstarted/#1-installing-clickhouse
Clickhouse篇之数据的备份与恢复
听说唐僧不吃肉
Clickhouse clickhouse 数据库
Clickhouse数据的备份与恢复要备份ClickHouse数据库中的数据表,你可以使用ClickHouse提供的BACKUP和RESTORE功能,或者通过手动备份文件系统中的数据目录来实现。以下是两种常用的方法:方法一:使用BACKUP和RESTORE功能从ClickHouse21.8版本开始,支持BACKUP和RESTORE命令。以下是备份和恢复的步骤:1.备份数据库备份整个数据库BACKU
click house学习路线——开篇
Fred3D
Click house 数据库
clickhouse学习路线官方文档前提:最近要计算数据指标,开始使用olap列示存储的数据库,对clickhouse的使用进行了系统学习推荐阅读的书官方文档地址ClickHouse原理解析与应用实践(朱凯)占位后续更新…
Clickhouse 集群部署安装
想当厨子的小章同学
Clickhouse linux 服务器 运维
ClickHouse集群部署安装1、环境准备(1)、阿里云服务器两台集群节点信息192.168.5.13ch01192.168.5.14ch02(2)、修改/etc/cloud/cloud.cfg(所有节点)[root@iZbp1fsk0p3opmtlo52u91Z~]#vim/etc/cloud/cloud.cfg注释掉#manage_etc_hosts:localhost(3)、文件打开数调整
clickhouse集群部署
林鸟鸟
clickhouse clickhouse 服务器
单节点设置为了延迟演示分布式环境的复杂性,我们将首先在单个服务器或虚拟机上部署ClickHouse。ClickHouse通常是从deb或rpm包安装,但对于不支持它们的操作系统也有其他方法。例如,您选择deb安装包,执行:sudoapt-getinstall-yapt-transport-httpsca-certificatesdirmngrsudoapt-keyadv--keyserverhkp
多线程编程之join()方法
周凡杨
java JOIN 多线程 编程 线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
java中switch的使用
bingyingao
java enum break continue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
hive having count 不能去重
daizj
hive 去重 having count 计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
设计模式总结
朱辉辉33
java 设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
实例:供应商管理报表需求调研报告
老A不折腾
finereport 报表系统 报表软件 信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
JDK1.5 Semaphore实例
bijian1013
java thread java多线程 Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
使用GZip来压缩传输量
bijian1013
java GZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
eclipse svn 帐号密码修改问题
开窍的石头
eclipse SVN svn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
[电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
java properties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
Java核心问题集锦
darrenzhu
java 基础 核心 难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
Gson使用二(GsonBuilder)
eksliang
json gson GsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
sql mysql oracle中字符串连接
macroli
oracle sql mysql SQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境 每天进步一点点 git 纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
windows命令行设置wifi
surfingll
windows wifi 笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linux ubuntu sysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出