phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zhengjiewen (Jira)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-6262) Bulk Load have a bug in lowercase tablename
Date Fri, 11 Dec 2020 09:13:00 GMT

     [ 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 :
 **
{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)

Mime
View raw message