You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by GitBox <gi...@apache.org> on 2019/06/19 04:33:28 UTC

[GitHub] [phoenix] priyankporwal commented on a change in pull request #520: PHOENIX-5333: A tool to upgrade existing tables/indexes to use self-c…

priyankporwal commented on a change in pull request #520: PHOENIX-5333: A tool to upgrade existing tables/indexes to use self-c…
URL: https://github.com/apache/phoenix/pull/520#discussion_r295117427
 
 

 ##########
 File path: phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexUpgradeTool.java
 ##########
 @@ -0,0 +1,409 @@
+package org.apache.phoenix.mapreduce.index;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.DefaultParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.hadoop.conf.Configured;
+
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.CompactionState;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
+import org.apache.phoenix.hbase.index.IndexRegionObserver;
+import org.apache.phoenix.hbase.index.Indexer;
+import org.apache.phoenix.hbase.index.covered.NonTxIndexBuilder;
+import org.apache.phoenix.index.GlobalIndexChecker;
+import org.apache.phoenix.index.PhoenixIndexBuilder;
+import org.apache.phoenix.index.PhoenixIndexCodec;
+import org.apache.phoenix.jdbc.PhoenixConnection;
+import org.apache.phoenix.query.ConnectionQueryServices;
+import org.apache.phoenix.query.QueryServices;
+import org.apache.phoenix.query.QueryServicesOptions;
+import org.apache.phoenix.schema.PTable;
+import org.apache.phoenix.util.PhoenixRuntime;
+
+import java.util.logging.Logger;
+import org.apache.hadoop.conf.Configuration;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.UUID;
+import java.util.logging.FileHandler;
+import java.util.logging.SimpleFormatter;
+
+
+public class IndexUpgradeTool extends Configured {
+
+    private static final Logger LOGGER = Logger.getLogger(IndexUpgradeTool.class.getName());
+
+    private static final Option OPERATION_OPTION = new Option("o", "operation", true,
+            "[Required]Operation to perform (Upgrade/Rollback)");
+    private static final Option TABLE_OPTION = new Option("tb", "table", true,
+            "[Required]Tables and indexes list ex. table1: index1, index2, index3; table2: index4, index5");
+    private static final Option TABLE_CSV_FILE_OPTION = new Option("f", "file", true,
+            "[Optional]Tables and indexes list in a csv file");
+    private static final Option DRY_RUN_OPTION = new Option("s", "show", false,
+            "[Optional]If passed this will output steps that will be executed");
+    private static final Option HELP_OPTION = new Option("h", "help", false, "Help");
+    private static final Option CONNECTION_STRING_OPTION = new Option("c", "connection-string", true, "Connection string");
+    private static final Option LOG_FILE_OPTION = new Option("lf", "logfile", true,
+            "Log file path where the logs are written");
+    private static final Option HOST_OPTION = new Option("ho", "host", true, "[Required]zookeeper quorum host");
+    private static final Option PORT_OPTION = new Option("po", "port", true, "[Required]zookeeper port");
+
+    private static final String UPGRADE_OP = "upgrade";
+    private static final String ROLLBACK_OP = "rollback";
+
+
+    private static HashMap <String, Boolean> tableMC = new HashMap<>();
 
 Review comment:
   Any reason these need to be static members? These are not literals/consts like the ones above. So, let's just use regular class members.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services