From 07cb166c5ba65eed4a1879936da6c992a2c3a54e Mon Sep 17 00:00:00 2001 From: "bake.snn" Date: Thu, 23 May 2019 17:27:26 +0800 Subject: [PATCH] fix#342 support phoenix table name lower case. --- README.md | 1 + .../reader/hbase20xsqlreader/HBase20SQLReaderHelper.java | 6 +++--- .../writer/hbase20xsqlwriter/HBase20xSQLWriterTask.java | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3076872b..af79baba 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、N | | Hbase0.94 | √ | √ |[读](https://github.com/alibaba/DataX/blob/master/hbase094xreader/doc/hbase094xreader.md) 、[写](https://github.com/alibaba/DataX/blob/master/hbase094xwriter/doc/hbase094xwriter.md)| | | Hbase1.1 | √ | √ |[读](https://github.com/alibaba/DataX/blob/master/hbase11xreader/doc/hbase11xreader.md) 、[写](https://github.com/alibaba/DataX/blob/master/hbase11xwriter/doc/hbase11xwriter.md)| | | Phoenix4.x | √ | √ |[读](https://github.com/alibaba/DataX/blob/master/hbase11xsqlreader/doc/hbase11xsqlreader.md) 、[写](https://github.com/alibaba/DataX/blob/master/hbase11xsqlwriter/doc/hbase11xsqlwriter.md)| +| | Phoenix5.x | √ | √ |[读](https://github.com/alibaba/DataX/blob/master/hbase20xsqlreader/doc/hbase20xsqlreader.md) 、[写](https://github.com/alibaba/DataX/blob/master/hbase20xsqlwriter/doc/hbase20xsqlwriter.md)| | | MongoDB | √ | √ |[读](https://github.com/alibaba/DataX/blob/master/mongoreader/doc/mongoreader.md) 、[写](https://github.com/alibaba/DataX/blob/master/mongowriter/doc/mongowriter.md)| | | Hive | √ | √ |[读](https://github.com/alibaba/DataX/blob/master/hdfsreader/doc/hdfsreader.md) 、[写](https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdfswriter.md)| | 无结构化数据存储 | TxtFile | √ | √ |[读](https://github.com/alibaba/DataX/blob/master/txtfilereader/doc/txtfilereader.md) 、[写](https://github.com/alibaba/DataX/blob/master/txtfilewriter/doc/txtfilewriter.md)| diff --git a/hbase20xsqlreader/src/main/java/com/alibaba/datax/plugin/reader/hbase20xsqlreader/HBase20SQLReaderHelper.java b/hbase20xsqlreader/src/main/java/com/alibaba/datax/plugin/reader/hbase20xsqlreader/HBase20SQLReaderHelper.java index f2d880af..0edc993f 100644 --- a/hbase20xsqlreader/src/main/java/com/alibaba/datax/plugin/reader/hbase20xsqlreader/HBase20SQLReaderHelper.java +++ b/hbase20xsqlreader/src/main/java/com/alibaba/datax/plugin/reader/hbase20xsqlreader/HBase20SQLReaderHelper.java @@ -49,9 +49,9 @@ public class HBase20SQLReaderHelper { String schema = configuration.getString(Key.SCHEMA, null); String tableName = configuration.getNecessaryValue(Key.TABLE, HBase20xSQLReaderErrorCode.REQUIRED_VALUE); if (schema != null && !schema.isEmpty()) { - fullTableName = schema + "." + tableName; + fullTableName = "\"" + schema + "\".\"" + tableName + "\""; } else { - fullTableName = tableName; + fullTableName = "\"" + tableName + "\""; } // 如果列名未配置,默认读取全部列* columnNames = configuration.getList(Key.COLUMN, String.class); @@ -248,7 +248,7 @@ public class HBase20SQLReaderHelper { String querySql; StringBuilder columnBuilder = new StringBuilder(); for (String columnName : columnNames) { - columnBuilder.append(columnName).append(","); + columnBuilder.append("\"").append(columnName).append("\","); } columnBuilder.setLength(columnBuilder.length() -1); if (StringUtils.isBlank(where)) { diff --git a/hbase20xsqlwriter/src/main/java/com/alibaba/datax/plugin/writer/hbase20xsqlwriter/HBase20xSQLWriterTask.java b/hbase20xsqlwriter/src/main/java/com/alibaba/datax/plugin/writer/hbase20xsqlwriter/HBase20xSQLWriterTask.java index 5557e674..43f710b7 100644 --- a/hbase20xsqlwriter/src/main/java/com/alibaba/datax/plugin/writer/hbase20xsqlwriter/HBase20xSQLWriterTask.java +++ b/hbase20xsqlwriter/src/main/java/com/alibaba/datax/plugin/writer/hbase20xsqlwriter/HBase20xSQLWriterTask.java @@ -72,9 +72,9 @@ public class HBase20xSQLWriterTask { batchSize = configuration.getInt(Key.BATCHSIZE, Constant.DEFAULT_BATCH_ROW_COUNT); String schema = configuration.getString(Key.SCHEMA); String tableName = configuration.getNecessaryValue(Key.TABLE, HBase20xSQLWriterErrorCode.REQUIRED_VALUE); - fullTableName = tableName; + fullTableName = "\"" + tableName + "\""; if (schema != null && !schema.isEmpty()) { - fullTableName = schema + "." + tableName; + fullTableName = "\"" + schema + "\".\"" + tableName + "\""; } columns = configuration.getList(Key.COLUMN, String.class); if (pstmt == null) { @@ -125,7 +125,7 @@ public class HBase20xSQLWriterTask { int[] types = new int[numberOfColumnsToWrite]; StringBuilder columnNamesBuilder = new StringBuilder(); for (String columnName : columns) { - columnNamesBuilder.append(columnName).append(","); + columnNamesBuilder.append("\"").append(columnName).append("\","); } columnNamesBuilder.setLength(columnNamesBuilder.length() - 1); // 查询一条数据获取表meta信息