You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "zhengjiewen (Jira)" <ji...@apache.org> on 2020/12/11 09:11:00 UTC

[jira] [Updated] (PHOENIX-6262) Bulk Load have a bug in lowercase tablename

     [ https://issues.apache.org/jira/browse/PHOENIX-6262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

zhengjiewen updated PHOENIX-6262:
---------------------------------
    Description: 
h1. Bulk Load in lowercase tablename

{color:#172b4d}when I use phoenix bulk load command to import csv file to phoenix table,{color} there{color:#172b4d} are get error.{color}
{code:java}
//代码占位符
Exception in thread "main" java.lang.IllegalArgumentException: Table "test"."ods_om_om_order_test" not foundException in thread "main" java.lang.IllegalArgumentException: Table "test"."ods_om_om_order_test" not found at org.apache.phoenix.util.SchemaUtil.generateColumnInfo(SchemaUtil.java:956) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.buildImportColumns(AbstractBulkLoadTool.java:377) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.loadData(AbstractBulkLoadTool.java:211) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.run(AbstractBulkLoadTool.java:180) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90) at org.apache.phoenix.mapreduce.CsvBulkLoadTool.main(CsvBulkLoadTool.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:313) at org.apache.hadoop.util.RunJar.main(RunJar.java:227)
{code}
my command is :
 **
{code:java}
hadoop jar /opt/cloudera/parcels/CDH/lib/hbase/lib/phoenix-5.0.0-cdh6.2.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -s \"\"test\"\" -t \"\"ods_om_om_order_test\"\" -i /tmp/phoenix/ods_om_om_order_test5/data.csv{code}
{color:#172b4d}And I found the source code have a bug in *org.apache.phoenix.jdbc.PhoenixDatabaseMetaData#*{color}

*getColumns.*

This method splices the tableName and schemaName into SQL statements to query the System.catalog. but if your tableName or schemaName is lowercase,that would be the '"test"' and '"ods_om_om_order_test5"' so that will can not query the result and then return table not found exception.

  was:
h1. Bulk Load in lowercase tablename

{color:#172b4d}when I use phoenix bulk load command to import csv file to phoenix table,{color} there{color:#172b4d} are get error.{color}
{code:java}
//代码占位符
Exception in thread "main" java.lang.IllegalArgumentException: Table "test"."ods_om_om_order_test" not foundException in thread "main" java.lang.IllegalArgumentException: Table "test"."ods_om_om_order_test" not found at org.apache.phoenix.util.SchemaUtil.generateColumnInfo(SchemaUtil.java:956) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.buildImportColumns(AbstractBulkLoadTool.java:377) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.loadData(AbstractBulkLoadTool.java:211) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.run(AbstractBulkLoadTool.java:180) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90) at org.apache.phoenix.mapreduce.CsvBulkLoadTool.main(CsvBulkLoadTool.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:313) at org.apache.hadoop.util.RunJar.main(RunJar.java:227)
{code}
my command is :
*{color:#4c9aff}{color}*
{code:java}
hadoop jar /opt/cloudera/parcels/CDH/lib/hbase/lib/phoenix-5.0.0-cdh6.2.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -s \"\"test\"\" -t \"\"ods_om_om_order_test\"\" -i /tmp/phoenix/ods_om_om_order_test5/data.csv{code}
{color:#172b4d}And I found the source code have a bug in *org.apache.phoenix.jdbc.PhoenixDatabaseMetaData#*{color}

*getColumns.*

This method splices the tableName and schemaName into SQL statements to query the System.catalog. but if your tableName or schemaName is lowercase,that would be the '"test"' and '"ods\_om\_om\_order\_test5"' so that will can not query the result and then return table not found exception.


> Bulk Load have a bug in lowercase tablename
> -------------------------------------------
>
>                 Key: PHOENIX-6262
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6262
>             Project: Phoenix
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 5.1.0-cdh
>            Reporter: zhengjiewen
>            Priority: Major
>
> h1. Bulk Load in lowercase tablename
> {color:#172b4d}when I use phoenix bulk load command to import csv file to phoenix table,{color} there{color:#172b4d} are get error.{color}
> {code:java}
> //代码占位符
> Exception in thread "main" java.lang.IllegalArgumentException: Table "test"."ods_om_om_order_test" not foundException in thread "main" java.lang.IllegalArgumentException: Table "test"."ods_om_om_order_test" not found at org.apache.phoenix.util.SchemaUtil.generateColumnInfo(SchemaUtil.java:956) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.buildImportColumns(AbstractBulkLoadTool.java:377) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.loadData(AbstractBulkLoadTool.java:211) at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.run(AbstractBulkLoadTool.java:180) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90) at org.apache.phoenix.mapreduce.CsvBulkLoadTool.main(CsvBulkLoadTool.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:313) at org.apache.hadoop.util.RunJar.main(RunJar.java:227)
> {code}
> my command is :
>  **
> {code:java}
> hadoop jar /opt/cloudera/parcels/CDH/lib/hbase/lib/phoenix-5.0.0-cdh6.2.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -s \"\"test\"\" -t \"\"ods_om_om_order_test\"\" -i /tmp/phoenix/ods_om_om_order_test5/data.csv{code}
> {color:#172b4d}And I found the source code have a bug in *org.apache.phoenix.jdbc.PhoenixDatabaseMetaData#*{color}
> *getColumns.*
> This method splices the tableName and schemaName into SQL statements to query the System.catalog. but if your tableName or schemaName is lowercase,that would be the '"test"' and '"ods_om_om_order_test5"' so that will can not query the result and then return table not found exception.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)