Apache Druid 数据迁移方案
编辑![Apache Druid 数据迁移方案](https://xiaoming728.oss-cn-hangzhou.aliyuncs.com/xiaoming728/rruid.png)
本文介绍的Apache Druid 数据迁移只是基于linux环境部署
环境要求
java7 或者更高版本
linux, macOS或者其他unix系统(不支持windows系统)
8G内存
2核CPU
第一种数据迁移方式
只是升级Druid的版本,还是使用默认的元数据管理数据库DerBy
1、首先从apache druid官网下载合适的版本,我这里以apache-druid-0.20.0-bin.tar.gz版本为例,下载好安装包
2、解压
tar -xzf apache-druid-0.20.0-bin.tar.gz
3、查看旧版本Druid运行时保存segments和数据库的所在目录
cd /home/apache-druid-0.20.0/conf/druid/cluster/_common
查看配置文件 common.runtime.properties
4、 复制segment和元数据文件到新迁移的druid存储路径
如新版本Druid的存储目录是/data/druid
cp -r $DRUID_HOME/var/druid/segments /data/druid #复制segment文件
cp -r $DRUID_HOME/var/druid/metadata.db $NEW_DRUID_HOME/var/druid/ #复制元数据文件,目录没有可以手动创建,注意权限
5、启动druid
第二种数据迁移方式
1、使用导出元数据工具
进入到apache druid 的根目录:cd ${DRUID_ROOT}
创建一个临时文件夹:mkdir -p /tmp/csv
该命令只适用于linux部署,导出命令:
java -classpath "lib/*" -Dlog4j.configurationFile=conf/druid/cluster/_common/log4j2.xml -Ddruid.extensions.directory="extensions" -Ddruid.extensions.loadList=[] org.apache.druid.cli.Main tools export-metadata --connectURI "jdbc:derby://localhost:1527/var/druid/metadata.db;" -o /tmp/csv
2、导入元数据
运行该工具后,输出目录将包含<table-name>_raw.csv和<table-name>.csv文件。
这些<table-name>_raw.csv文件是工具使用的中间文件,包含Derby导出的表数据,而无需进行修改。
这些<table-name>.csv文件用于导入到另一个数据库(例如MySQL和PostgreSQL)中,并且已应用任何已配置的深度存储位置重写。
下面显示了针对Derby,MySQL和PostgreSQL的示例导入命令。
这些示例导入命令期望/tmp/csv可以从服务器访问其内容。有关其他选项,例如从客户端文件系统导入,请参考数据库的文档。
德比
的MySQL
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null,'DRUID_SEGMENTS','/tmp/csv/druid_segments.csv',',','"',null,0);
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null,'DRUID_RULES','/tmp/csv/druid_rules.csv',',','"',null,0);
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null,'DRUID_CONFIG','/tmp/csv/druid_config.csv',',','"',null,0);
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null,'DRUID_DATASOURCE','/tmp/csv/druid_dataSource.csv',',','"',null,0);
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null,'DRUID_SUPERVISORS','/tmp/csv/druid_supervisors.csv',',','"',null,0);
复制
LOAD DATA INFILE '/tmp/csv/druid_segments.csv' INTO TABLE druid_segments FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' (id,dataSource,created_date,start,end,partitioned,version,used,payload); SHOW WARNINGS;
LOAD DATA INFILE '/tmp/csv/druid_rules.csv' INTO TABLE druid_rules FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' (id,dataSource,version,payload); SHOW WARNINGS;
LOAD DATA INFILE '/tmp/csv/druid_config.csv' INTO TABLE druid_config FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' (name,payload); SHOW WARNINGS;
LOAD DATA INFILE '/tmp/csv/druid_dataSource.csv' INTO TABLE druid_dataSource FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' (dataSource,created_date,commit_metadata_payload,commit_metadata_sha1); SHOW WARNINGS;
LOAD DATA INFILE '/tmp/csv/druid_supervisors.csv' INTO TABLE druid_supervisors FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' (id,spec_id,created_date,payload); SHOW WARNINGS;
复制
PostgreSQL的
COPY druid_segments(id,dataSource,created_date,start,"end",partitioned,version,used,payload) FROM '/tmp/csv/druid_segments.csv' DELIMITER ',' CSV;
COPY druid_rules(id,dataSource,version,payload) FROM '/tmp/csv/druid_rules.csv' DELIMITER ',' CSV;
COPY druid_config(name,payload) FROM '/tmp/csv/druid_config.csv' DELIMITER ',' CSV;
COPY druid_dataSource(dataSource,created_date,commit_metadata_payload,commit_metadata_sha1) FROM '/tmp/csv/druid_dataSource.csv' DELIMITER ',' CSV;
COPY druid_supervisors(id,spec_id,created_date,payload) FROM '/tmp/csv/druid_supervisors.csv' DELIMIT
针对默认的derby数据库,经研究未找到apache druid的内置数据库如何连接和使用,已经命令如何执行。
3、将内置的derby数据库修改为mysql数据库
vim $NEW_DRUID_HOME/conf/druid/single-server/micro-quickstart/_common/common.runtime.properties
添加MySQL为元数据存储 mysql-metadata-storage :
druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches", "mysql-metadata-storage"]
4、 复制segments 数据
cp -r $DRUID_HOME/var/druid/segments /data/druid #复制segment文件
5、上传MySQL的驱动包到扩展目录
cd $NEW_DRUID_HOME/extensions/mysql-metadata-storage/
wget http://192.168.1.85/source/mysql-connector-java-5.1.47.jar #或者本地上传至此目录下
ls
mysql-connector-java-5.1.47.jar mysql-metadata-storage-0.17.0.jar
6、启动druid
- 0
- 0
-
赞助
赞赏
-
分享