You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by xi...@apache.org on 2021/05/19 07:23:32 UTC
[incubator-pinot] branch master updated: Update Quickstart to take
tmp dir as a parameter (#5445)
This is an automated email from the ASF dual-hosted git repository.
xiangfu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 1b0bb72 Update Quickstart to take tmp dir as a parameter (#5445)
1b0bb72 is described below
commit 1b0bb7212dc3dd577e72aea9b9a9ba849d6642f8
Author: Xiang Fu <xi...@gmail.com>
AuthorDate: Wed May 19 00:23:16 2021 -0700
Update Quickstart to take tmp dir as a parameter (#5445)
---
.../pinot/tools/BatchQuickstartWithMinion.java | 11 ++--
.../org/apache/pinot/tools/HybridQuickstart.java | 17 +++---
.../org/apache/pinot/tools/JoinQuickStart.java | 17 +++---
.../apache/pinot/tools/JsonIndexQuickStart.java | 15 ++++--
.../OfflineComplexTypeHandlingQuickStart.java | 15 ++++--
...ickstartWithMinion.java => QuickStartBase.java} | 23 ++++----
.../java/org/apache/pinot/tools/Quickstart.java | 16 ++++--
.../RealtimeComplexTypeHandlingQuickStart.java | 15 ++++--
.../pinot/tools/RealtimeJsonIndexQuickStart.java | 15 ++++--
.../org/apache/pinot/tools/RealtimeQuickStart.java | 16 +++---
.../org/apache/pinot/tools/UpsertQuickStart.java | 15 ++++--
.../tools/admin/command/QuickStartCommand.java | 62 ++++++++++++++++++++--
12 files changed, 166 insertions(+), 71 deletions(-)
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/BatchQuickstartWithMinion.java b/pinot-tools/src/main/java/org/apache/pinot/tools/BatchQuickstartWithMinion.java
index 37deaa8..c7267fc 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/BatchQuickstartWithMinion.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/BatchQuickstartWithMinion.java
@@ -18,7 +18,10 @@
*/
package org.apache.pinot.tools;
-import org.apache.pinot.spi.plugin.PluginManager;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.apache.pinot.tools.admin.PinotAdministrator;
public class BatchQuickstartWithMinion extends Quickstart {
@@ -34,7 +37,9 @@ public class BatchQuickstartWithMinion extends Quickstart {
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new BatchQuickstartWithMinion().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "BATCH-MINION"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
}
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java
index a2f2a8a..cba6277 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java
@@ -23,15 +23,18 @@ import com.google.common.collect.Lists;
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.pinot.common.utils.ZkStarter;
import org.apache.pinot.spi.config.table.TableConfig;
import org.apache.pinot.spi.data.Schema;
-import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.spi.stream.StreamDataProvider;
import org.apache.pinot.spi.stream.StreamDataServerStartable;
import org.apache.pinot.spi.utils.JsonUtils;
import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import org.apache.pinot.tools.streams.AirlineDataStream;
import org.apache.pinot.tools.utils.KafkaStarterUtils;
@@ -40,7 +43,7 @@ import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class HybridQuickstart {
+public class HybridQuickstart extends QuickStartBase {
private StreamDataServerStartable _kafkaStarter;
private ZkStarter.ZookeeperInstance _zookeeperInstance;
private File _schemaFile;
@@ -50,10 +53,10 @@ public class HybridQuickstart {
public static void main(String[] args)
throws Exception {
- // TODO: Explicitly call below method to load dependencies from pinot-plugins libs which are excluded from pinot-tools packaging.
- // E.g. Kafka related libs are coming from pinot-kafka-* lib, avro libs are coming from pinot-avro lib.
- PluginManager.get().init();
- new HybridQuickstart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "HYBRID"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
private QuickstartTableRequest prepareTableRequest(File baseDir)
@@ -101,7 +104,7 @@ public class HybridQuickstart {
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File baseDir = new File(quickstartTmpDir, "airlineStats");
File dataDir = new File(baseDir, "data");
Preconditions.checkState(dataDir.mkdirs());
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java
index d6cd44e..fe25759 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java
@@ -22,19 +22,22 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import org.apache.commons.io.FileUtils;
-import org.apache.pinot.spi.plugin.PluginManager;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class JoinQuickStart {
+public class JoinQuickStart extends QuickStartBase {
- private void execute()
+ public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
// Baseball stat table
File baseBallStatsBaseDir = new File(quickstartTmpDir, "baseballStats");
@@ -120,7 +123,9 @@ public class JoinQuickStart {
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new JoinQuickStart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "JOIN"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
}
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java
index d9b9be9..2c752f9 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java
@@ -21,21 +21,24 @@ package org.apache.pinot.tools;
import com.google.common.base.Preconditions;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.List;
import org.apache.commons.io.FileUtils;
-import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class JsonIndexQuickStart {
+public class JsonIndexQuickStart extends QuickStartBase {
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File baseDir = new File(quickstartTmpDir, "githubEvents");
File dataDir = new File(quickstartTmpDir, "rawdata");
Preconditions.checkState(dataDir.mkdirs());
@@ -89,7 +92,9 @@ public class JsonIndexQuickStart {
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new JsonIndexQuickStart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "BATCH-JSON-INDEX"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
}
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java
index c656dfa..2f0563b 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java
@@ -21,21 +21,24 @@ package org.apache.pinot.tools;
import com.google.common.base.Preconditions;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.List;
import org.apache.commons.io.FileUtils;
-import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class OfflineComplexTypeHandlingQuickStart {
+public class OfflineComplexTypeHandlingQuickStart extends QuickStartBase {
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File baseDir = new File(quickstartTmpDir, "githubEvents");
File dataDir = new File(quickstartTmpDir, "rawdata");
Preconditions.checkState(dataDir.mkdirs());
@@ -89,7 +92,9 @@ public class OfflineComplexTypeHandlingQuickStart {
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new OfflineComplexTypeHandlingQuickStart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "BATCH-COMPLEX-TYPE"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
}
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/BatchQuickstartWithMinion.java b/pinot-tools/src/main/java/org/apache/pinot/tools/QuickStartBase.java
similarity index 67%
copy from pinot-tools/src/main/java/org/apache/pinot/tools/BatchQuickstartWithMinion.java
copy to pinot-tools/src/main/java/org/apache/pinot/tools/QuickStartBase.java
index 37deaa8..94016c8 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/BatchQuickstartWithMinion.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/QuickStartBase.java
@@ -18,23 +18,18 @@
*/
package org.apache.pinot.tools;
-import org.apache.pinot.spi.plugin.PluginManager;
+import java.io.File;
+import org.apache.commons.io.FileUtils;
-public class BatchQuickstartWithMinion extends Quickstart {
+public abstract class QuickStartBase {
+ protected File _tmpDir = FileUtils.getTempDirectory();
- public String getBootstrapDataDir() {
- return "examples/minions/batch/baseballStats";
+ public QuickStartBase setTmpDir(String tmpDir) {
+ this._tmpDir = new File(tmpDir);
+ return this;
}
- @Override
- public int getNumMinions() {
- return 1;
- }
-
- public static void main(String[] args)
- throws Exception {
- PluginManager.get().init();
- new BatchQuickstartWithMinion().execute();
- }
+ public abstract void execute()
+ throws Exception;
}
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java
index f583352..4907d79 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java
@@ -23,16 +23,20 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
-import org.apache.pinot.spi.plugin.PluginManager;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
-public class Quickstart {
+public class Quickstart extends QuickStartBase {
private static final String TAB = "\t\t";
private static final String NEW_LINE = "\n";
+
public enum Color {
RESET("\u001B[0m"), GREEN("\u001B[32m"), YELLOW("\u001B[33m"), CYAN("\u001B[36m");
@@ -149,7 +153,7 @@ public class Quickstart {
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File baseDir = new File(quickstartTmpDir, "baseballStats");
File dataDir = new File(baseDir, "rawdata");
Preconditions.checkState(dataDir.mkdirs());
@@ -235,7 +239,9 @@ public class Quickstart {
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new Quickstart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "BATCH"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
}
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java
index 7664288..713aaa0 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java
@@ -22,12 +22,15 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.pinot.common.utils.ZkStarter;
-import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.spi.stream.StreamDataProvider;
import org.apache.pinot.spi.stream.StreamDataServerStartable;
import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import org.apache.pinot.tools.streams.MeetupRsvpJsonStream;
import org.apache.pinot.tools.utils.KafkaStarterUtils;
@@ -36,18 +39,20 @@ import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class RealtimeComplexTypeHandlingQuickStart {
+public class RealtimeComplexTypeHandlingQuickStart extends QuickStartBase {
private StreamDataServerStartable _kafkaStarter;
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new RealtimeComplexTypeHandlingQuickStart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "REALTIME-COMPLEX-TYPE"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File baseDir = new File(quickstartTmpDir, "meetupRsvp");
File dataDir = new File(baseDir, "data");
Preconditions.checkState(dataDir.mkdirs());
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java
index 5a79315..d246fb8 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java
@@ -22,12 +22,15 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.pinot.common.utils.ZkStarter;
-import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.spi.stream.StreamDataProvider;
import org.apache.pinot.spi.stream.StreamDataServerStartable;
import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import org.apache.pinot.tools.streams.MeetupRsvpJsonStream;
import org.apache.pinot.tools.utils.KafkaStarterUtils;
@@ -36,18 +39,20 @@ import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class RealtimeJsonIndexQuickStart {
+public class RealtimeJsonIndexQuickStart extends QuickStartBase {
private StreamDataServerStartable _kafkaStarter;
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new RealtimeJsonIndexQuickStart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "REALTIME-JSON-INDEX"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File baseDir = new File(quickstartTmpDir, "meetupRsvp");
File dataDir = new File(baseDir, "data");
Preconditions.checkState(dataDir.mkdirs());
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java
index 883b4c0..41c3e4f 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java
@@ -22,12 +22,15 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.pinot.common.utils.ZkStarter;
-import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.spi.stream.StreamDataProvider;
import org.apache.pinot.spi.stream.StreamDataServerStartable;
import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import org.apache.pinot.tools.streams.MeetupRsvpStream;
import org.apache.pinot.tools.utils.KafkaStarterUtils;
@@ -36,19 +39,20 @@ import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class RealtimeQuickStart {
+public class RealtimeQuickStart extends QuickStartBase {
private StreamDataServerStartable _kafkaStarter;
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new RealtimeQuickStart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "REALTIME"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
-
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File baseDir = new File(quickstartTmpDir, "meetupRsvp");
File dataDir = new File(baseDir, "rawdata");
Preconditions.checkState(dataDir.mkdirs());
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java
index 1e3705e..53e5e12 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java
@@ -22,12 +22,15 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.pinot.common.utils.ZkStarter;
-import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.spi.stream.StreamDataProvider;
import org.apache.pinot.spi.stream.StreamDataServerStartable;
import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
import org.apache.pinot.tools.admin.command.QuickstartRunner;
import org.apache.pinot.tools.streams.MeetupRsvpStream;
import org.apache.pinot.tools.utils.KafkaStarterUtils;
@@ -36,18 +39,20 @@ import static org.apache.pinot.tools.Quickstart.prettyPrintResponse;
import static org.apache.pinot.tools.Quickstart.printStatus;
-public class UpsertQuickStart {
+public class UpsertQuickStart extends QuickStartBase {
private StreamDataServerStartable _kafkaStarter;
public static void main(String[] args)
throws Exception {
- PluginManager.get().init();
- new UpsertQuickStart().execute();
+ List<String> arguments = new ArrayList<>();
+ arguments.addAll(Arrays.asList("QuickStart", "-type", "UPSERT"));
+ arguments.addAll(Arrays.asList(args));
+ PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
}
public void execute()
throws Exception {
- File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis()));
+ File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis()));
File bootstrapTableDir = new File(quickstartTmpDir, "meetupRsvp");
File dataDir = new File(bootstrapTableDir, "data");
Preconditions.checkState(dataDir.mkdirs());
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java
index eeec0dc..54119f4 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java
@@ -22,8 +22,15 @@ import org.apache.pinot.spi.plugin.PluginManager;
import org.apache.pinot.tools.BatchQuickstartWithMinion;
import org.apache.pinot.tools.Command;
import org.apache.pinot.tools.HybridQuickstart;
+import org.apache.pinot.tools.JoinQuickStart;
+import org.apache.pinot.tools.JsonIndexQuickStart;
+import org.apache.pinot.tools.OfflineComplexTypeHandlingQuickStart;
+import org.apache.pinot.tools.QuickStartBase;
import org.apache.pinot.tools.Quickstart;
+import org.apache.pinot.tools.RealtimeComplexTypeHandlingQuickStart;
+import org.apache.pinot.tools.RealtimeJsonIndexQuickStart;
import org.apache.pinot.tools.RealtimeQuickStart;
+import org.apache.pinot.tools.UpsertQuickStart;
import org.kohsuke.args4j.Option;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,6 +42,9 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma
@Option(name = "-type", required = false, metaVar = "<String>", usage = "Type of quickstart, supported: STREAM/BATCH/HYBRID")
private String _type;
+ @Option(name = "-tmpDir", required = false, aliases = {"-quickstartDir", "-dataDir"}, metaVar = "<String>", usage = "Temp Directory to host quickstart data")
+ private String _tmpDir;
+
@Option(name = "-help", required = false, help = true, aliases = {"-h", "--h", "--help"}, usage = "Print this message.")
private boolean _help = false;
@@ -53,6 +63,14 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma
return this;
}
+ public String getTmpDir() {
+ return _tmpDir;
+ }
+
+ public void setTmpDir(String tmpDir) {
+ _tmpDir = tmpDir;
+ }
+
@Override
public String toString() {
return ("QuickStart -type " + _type);
@@ -60,7 +78,6 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma
@Override
public void cleanup() {
-
}
@Override
@@ -72,27 +89,62 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma
public boolean execute()
throws Exception {
PluginManager.get().init();
+ QuickStartBase quickstart;
switch (_type.toUpperCase()) {
case "OFFLINE":
case "BATCH":
- new Quickstart().execute();
+ quickstart = new Quickstart();
break;
case "OFFLINE_MINION":
case "BATCH_MINION":
case "OFFLINE-MINION":
case "BATCH-MINION":
- new BatchQuickstartWithMinion().execute();
+ quickstart = new BatchQuickstartWithMinion();
break;
case "REALTIME":
case "STREAM":
- new RealtimeQuickStart().execute();
+ quickstart = new RealtimeQuickStart();
break;
case "HYBRID":
- new HybridQuickstart().execute();
+ quickstart = new HybridQuickstart();
+ break;
+ case "JOIN":
+ quickstart = new JoinQuickStart();
+ break;
+ case "UPSERT":
+ quickstart = new UpsertQuickStart();
+ break;
+ case "OFFLINE_JSON_INDEX":
+ case "OFFLINE-JSON-INDEX":
+ case "BATCH_JSON_INDEX":
+ case "BATCH-JSON-INDEX":
+ quickstart = new JsonIndexQuickStart();
+ break;
+ case "REALTIME_JSON_INDEX":
+ case "REALTIME-JSON-INDEX":
+ case "STREAM_JSON_INDEX":
+ case "STREAM-JSON-INDEX":
+ quickstart = new RealtimeJsonIndexQuickStart();
+ break;
+ case "OFFLINE_COMPLEX_TYPE":
+ case "OFFLINE-COMPLEX-TYPE":
+ case "BATCH_COMPLEX_TYPE":
+ case "BATCH-COMPLEX-TYPE":
+ quickstart = new OfflineComplexTypeHandlingQuickStart();
+ break;
+ case "REALTIME_COMPLEX_TYPE":
+ case "REALTIME-COMPLEX-TYPE":
+ case "STREAM_COMPLEX_TYPE":
+ case "STREAM-COMPLEX-TYPE":
+ quickstart = new RealtimeComplexTypeHandlingQuickStart();
break;
default:
throw new UnsupportedOperationException("Unsupported QuickStart type: " + _type);
}
+ if (_tmpDir != null) {
+ quickstart.setTmpDir(_tmpDir);
+ }
+ quickstart.execute();
return true;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org