This is an automated email from the ASF dual-hosted git repository.
jlfsdtc pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin5 by this push:
new 0bdc1886e8 KYLIN-6018 optimize metadata migrate tool 4x-->5x, run
without kylin_config
0bdc1886e8 is described below
commit 0bdc1886e84671d1ed07f9b0f77f4deedb14534f
Author: Zhong.Zhu <[email protected]>
AuthorDate: Thu Nov 7 19:14:32 2024 +0800
KYLIN-6018 optimize metadata migrate tool 4x-->5x, run without kylin_config
---
.../metadata/MigrateKEMetadataTool.java | 26 ++++++++++++----------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git
a/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/MigrateKEMetadataTool.java
b/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/MigrateKEMetadataTool.java
index 520863c5b8..81b087e4a9 100644
---
a/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/MigrateKEMetadataTool.java
+++
b/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/MigrateKEMetadataTool.java
@@ -473,7 +473,6 @@ public class MigrateKEMetadataTool {
}
final Properties props = config.exportToProperties();
KylinConfig dstConfig = KylinConfig.createKylinConfig(props);
- val dstResourceStore = (InMemResourceStore)
ResourceStore.getKylinMetaStore(dstConfig);
String type = inputPath.endsWith(".zip") ?
FileSystemMetadataStore.Type.ZIP.name() : DIR.name();
if (outputPath == null) {
@@ -487,34 +486,37 @@ public class MigrateKEMetadataTool {
log.info("outputPath: " + outputPath);
}
+ String outputZipFile = null;
+ if (outputPath.endsWith(".zip")) {
+ // metnauadata_url doesn't support zip file
+ outputZipFile = outputPath;
+ outputPath = outputPath.substring(0, outputPath.lastIndexOf("/"));
+ }
Path metadataPath = new Path(outputPath);
FileSystem fs = HadoopUtil.getWorkingFileSystem(metadataPath);
+ if (!fs.exists(metadataPath)) {
+ fs.mkdirs(metadataPath);
+ }
if (type.equals(FileSystemMetadataStore.Type.ZIP.name())) {
- if (!fs.exists(metadataPath.getParent())) {
- fs.mkdirs(metadataPath.getParent());
- }
dstConfig.setMetadataUrl(outputPath + "@file,zip=1");
} else {
- if (!fs.exists(metadataPath)) {
- fs.mkdirs(metadataPath);
- }
dstConfig.setMetadataUrl(outputPath);
}
+ val dstResourceStore = (InMemResourceStore)
ResourceStore.getKylinMetaStore(dstConfig);
FileSystemMetadataStore outputMetadataStore =
(FileSystemMetadataStore) MetadataStore
.createMetadataStore(dstConfig);
MetadataStore.MemoryMetaData memoryMetaData =
loadOldMetaData(outputMetadataStore, inputPath, type);
dstResourceStore.resetData(memoryMetaData);
- dumpToNewFormat(outputMetadataStore, dstResourceStore, type);
+ dumpToNewFormat(outputMetadataStore, dstResourceStore, type,
outputZipFile);
}
- private void dumpToNewFormat(FileSystemMetadataStore fileStore,
ResourceStore resourceStore, String type)
- throws IOException, InterruptedException, ExecutionException {
+ private void dumpToNewFormat(FileSystemMetadataStore fileStore,
ResourceStore resourceStore, String type,
+ String outputZipFile) throws IOException, InterruptedException,
ExecutionException {
val resources =
resourceStore.listResourcesRecursively(MetadataType.ALL.name());
if (FileSystemMetadataStore.Type.ZIP.name().equals(type)) {
- fileStore.dumpToZip(resourceStore, resources,
- new
Path(resourceStore.getConfig().getMetadataUrl().getIdentifier()));
+ fileStore.dumpToZip(resourceStore, resources, new
Path(outputZipFile));
} else {
fileStore.dumpToFile(resourceStore, resources);
}