Apache Druid元数据从Derby导出到CSV

Druid元数据从Derby导出到CSV

使用Druid比较老的版本,有的时候使用的元数据管理库是使用的Derby数据库,但是后面的迁移或者升级,都需要把元数据导出来,但是较老的版本的Druid不支持导出,本文档就把导出这里问题操作了一次,记录了一下。

这里的示例,我是运行了一个Druid0.12.0版本的Druid快速启动的方式运行了一段时间,有一些数据,这里我就是模拟真实环境吧,把我当前环境的数据迁移出来

我的单机的Druid安装,可以参考Druid0.12.0版本单机最简安装

当前的数据量是(停止了数据摄取任务,等待数据已经落库的真实数据)

2020612173245

准备一个新版本的Druid安装包

下载Druid 0.17.0的版本

[root@itdeer ~]# mkdir -p /opt/install

[root@itdeer ~]# cd /opt/install

[root@itdeer install]# wget https://archive.apache.org/dist/druid/0.17.0/apache-druid-0.17.0-bin.tar.gz

解压

[root@itdeer install]# tar -zxf apache-druid-0.17.0-bin.tar.gz

[root@itdeer install]# cd apache-druid-0.17.0

[root@itdeer apache-druid-0.17.0]# mv lib lib2

把lib2这里目录下载下来放到老的版本的Druid的目录下(这里测试的版本是0.12.0版本)

[root@itdeer druid-0.12.0]# ll
total 44
drwxr-xr-x  2 root root    187 Jun 12 11:38 bin
drwxr-xr-x  4 root root     38 Jun 12 11:38 conf
drwxr-xr-x  4 root root     38 Jun 12 11:38 conf-quickstart
drwxr-xr-x 19 root root   4096 Jun 12 11:38 extensions
drwxr-xr-x  3 root root     27 Jun 12 11:38 hadoop-dependencies
drwxr-xr-x  2 root root   8192 Jun 12 11:38 lib
drwxr-xr-x  2 root root   8192 Jun 12 16:50 lib2
-rw-r--r--  1  501 games 11358 Sep  9  2016 LICENSE
drwxr-xr-x  2 root root      6 Jun 12 11:41 log
-rw-r--r--  1  501 games  3454 Mar  8  2018 NOTICE
drwxr-xr-x  3 root root    171 Jun 12 11:41 quickstart
drwxr-xr-x  4 root root     30 Jun 12 11:41 var

停止服务,保证数据不会在有进出

[1] 有Kafka的indexer的摄取任务的,先停止supervisor的任务,等task自然的停止。

[2] 停止除coordinator之外的所有的服务,(可以先停止所有的服务,然后在启动coordinator服务,因为coordinator停止Derby也是停止的,启动coordinator时注意Zookeeper也要运行的)

准备导出元数据

[1] 准备目录

mkdir /opt/csv

[2] 执行命令

cd $DRUID_HOME/ #进入Druid0.12.0的安装目录下

执行命令
java -classpath "lib2/*" -Dlog4j.configurationFile=conf-quickstart/druid/_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;create=true;" -o /opt/csv

conf-quickstart/druid/_common/log4j2.xml    # 是我当前Druid运行的模式,就是我运行的是quickstart单机版本的Druid,若是运行cluster则指定 conf/druid/_common/log4j2.xml 即可
jdbc:derby://localhost:1527/var/druid/metadata.db;create=true;      # conf-quickstart/druid/_common/common.runtime.properties 配置文件的属性
-o /opt/csv         # 指定的输出文件目录

[3] 查看元数据文件

[root@itdeer druid-0.12.0]# ll /opt/csv/
total 116
-rw-r--r-- 1 root root     0 Jun 12 16:57 druid_config.csv
-rw-r--r-- 1 root root     0 Jun 12 16:57 druid_config_raw.csv
-rw-r--r-- 1 root root   172 Jun 12 16:57 druid_dataSource.csv
-rw-r--r-- 1 root root   246 Jun 12 16:57 druid_dataSource_raw.csv
-rw-r--r-- 1 root root   142 Jun 12 16:57 druid_rules.csv
-rw-r--r-- 1 root root   203 Jun 12 16:57 druid_rules_raw.csv
-rw-r--r-- 1 root root 32773 Jun 12 16:57 druid_segments.csv
-rw-r--r-- 1 root root 54426 Jun 12 16:57 druid_segments_raw.csv
-rw-r--r-- 1 root root  1654 Jun 12 16:57 druid_supervisors.csv
-rw-r--r-- 1 root root  2878 Jun 12 16:57 druid_supervisors_raw.csv

OK 现在已经把Derby存储的元数据导出来了。其他的版本应该也是可以的,应该适用于所有的版本,这里只是导出Derby的数据。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容