Druid元數(shù)據(jù)從Derby導(dǎo)出到CSV
使用Druid比較老的版本秋忙,有的時候使用的元數(shù)據(jù)管理庫是使用的Derby數(shù)據(jù)庫,但是后面的遷移或者升級构舟,都需要把元數(shù)據(jù)導(dǎo)出來翰绊,但是較老的版本的Druid不支持導(dǎo)出,本文檔就把導(dǎo)出這里問題操作了一次旁壮,記錄了一下监嗜。
這里的示例,我是運(yùn)行了一個Druid0.12.0版本的Druid快速啟動的方式運(yùn)行了一段時間抡谐,有一些數(shù)據(jù)裁奇,這里我就是模擬真實環(huán)境吧,把我當(dāng)前環(huán)境的數(shù)據(jù)遷移出來
我的單機(jī)的Druid安裝麦撵,可以參考Druid0.12.0版本單機(jī)最簡安裝
當(dāng)前的數(shù)據(jù)量是(停止了數(shù)據(jù)攝取任務(wù)刽肠,等待數(shù)據(jù)已經(jīng)落庫的真實數(shù)據(jù))
準(zhǔn)備一個新版本的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
停止服務(wù),保證數(shù)據(jù)不會在有進(jìn)出
[1] 有Kafka的indexer的攝取任務(wù)的免胃,先停止supervisor的任務(wù)音五,等task自然的停止。
[2] 停止除coordinator之外的所有的服務(wù)羔沙,(可以先停止所有的服務(wù)躺涝,然后在啟動coordinator服務(wù),因為coordinator停止Derby也是停止的扼雏,啟動coordinator時注意Zookeeper也要運(yùn)行的)
準(zhǔn)備導(dǎo)出元數(shù)據(jù)
[1] 準(zhǔn)備目錄
mkdir /opt/csv
[2] 執(zhí)行命令
cd $DRUID_HOME/ #進(jìn)入Druid0.12.0的安裝目錄下
執(zhí)行命令
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 # 是我當(dāng)前Druid運(yùn)行的模式坚嗜,就是我運(yùn)行的是quickstart單機(jī)版本的Druid,若是運(yùn)行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] 查看元數(shù)據(jù)文件
[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 現(xiàn)在已經(jīng)把Derby存儲的元數(shù)據(jù)導(dǎo)出來了诗充。其他的版本應(yīng)該也是可以的苍蔬,應(yīng)該適用于所有的版本,這里只是導(dǎo)出Derby的數(shù)據(jù)蝴蜓。