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

Jaanai Zhang updated PHOENIX-4847:
----------------------------------
    Description: 
Index tables are inconsistent with data tables when occurs update primary key 
of data tables with CSVBulkload tool.

CSV data:

{code:csv}
k1,v1_1,1
k2,v2_2,2
k1,v1_1,3
{code}

Imported table 

{code:sql}
DROP TABLE IF EXISTS TABLE1;
CREATE TABLE TABLE1 (ID VARCHAR NOT NULL PRIMARY KEY, V1 VARCHAR, V2 BIGINT)
SALT_BUCKETS = 8,
UPDATE_CACHE_FREQUENCY = 120000;

CREATE INDEX V1_IDX on TABLE1(V1) include(v2);
CREATE INDEX V2_IDX on TABLE1(V2) include(v1);

upsert into TABLE1 values('k1','v1_1',1);
upsert into TABLE1 values('k2','v2_2',2);
upsert into TABLE1 values('k1','v1_1',3);
{code}

The following is query results after executing `CsvBulkLoadTool`

{code:sql}
0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas> select * from table1;
+-----+-------+-----+
| ID  |  V1   | V2  |
+-----+-------+-----+
| k2  | v2_2  | 2   |
| k1  | v1_1  | 3   |
+-----+-------+-----+
2 rows selected (0.066 seconds)
0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas>  select * from V1_IDX;
+-------+------+-------+
| 0:V1  | :ID  | 0:V2  |
+-------+------+-------+
| v1_1  | k1   | 3     |
| v2_2  | k2   | 2     |
+-------+------+-------+
2 rows selected (0.074 seconds)
0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas>  select * from V2_IDX;
+-------+------+-------+
| 0:V2  | :ID  | 0:V1  |
+-------+------+-------+
| 1     | k1   | v1_1  |
| 3     | k1   | v1_1  |
| 2     | k2   | v2_2  |
+-------+------+-------+
3 rows selected (0.062 seconds)
{code}


  was:
Index tables are inconsistent with data tables when occurs update primary key 
of data tables with CSVBulkload tool.

CSV data:
{code:csv}
k1,v1_1,1
k2,v2_2,2
k1,v1_1,3
{code}

Imported table 
{code:sql}
DROP TABLE IF EXISTS TABLE1;
CREATE TABLE TABLE1 (ID VARCHAR NOT NULL PRIMARY KEY, V1 VARCHAR, V2 BIGINT)
SALT_BUCKETS = 8,
UPDATE_CACHE_FREQUENCY = 120000;

CREATE INDEX V1_IDX on TABLE1(V1) include(v2);
CREATE INDEX V2_IDX on TABLE1(V2) include(v1);

upsert into TABLE1 values('k1','v1_1',1);
upsert into TABLE1 values('k2','v2_2',2);
upsert into TABLE1 values('k1','v1_1',3);
{code}

The following is query results after executing `CsvBulkLoadTool`

{code:sql}
0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas> select * from table1;
+-----+-------+-----+
| ID  |  V1   | V2  |
+-----+-------+-----+
| k2  | v2_2  | 2   |
| k1  | v1_1  | 3   |
+-----+-------+-----+
2 rows selected (0.066 seconds)
0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas>  select * from V1_IDX;
+-------+------+-------+
| 0:V1  | :ID  | 0:V2  |
+-------+------+-------+
| v1_1  | k1   | 3     |
| v2_2  | k2   | 2     |
+-------+------+-------+
2 rows selected (0.074 seconds)
0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas>  select * from V2_IDX;
+-------+------+-------+
| 0:V2  | :ID  | 0:V1  |
+-------+------+-------+
| 1     | k1   | v1_1  |
| 3     | k1   | v1_1  |
| 2     | k2   | v2_2  |
+-------+------+-------+
3 rows selected (0.062 seconds)
{code}



> Index tables will produce dirty data when use BukloadTool 
> ----------------------------------------------------------
>
>                 Key: PHOENIX-4847
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4847
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.12.0, 4.13.0, 4.14.0, 5.0.0
>            Reporter: Jaanai Zhang
>            Priority: Critical
>
> Index tables are inconsistent with data tables when occurs update primary key 
> of data tables with CSVBulkload tool.
> CSV data:
> {code:csv}
> k1,v1_1,1
> k2,v2_2,2
> k1,v1_1,3
> {code}
> Imported table 
> {code:sql}
> DROP TABLE IF EXISTS TABLE1;
> CREATE TABLE TABLE1 (ID VARCHAR NOT NULL PRIMARY KEY, V1 VARCHAR, V2 BIGINT)
> SALT_BUCKETS = 8,
> UPDATE_CACHE_FREQUENCY = 120000;
> CREATE INDEX V1_IDX on TABLE1(V1) include(v2);
> CREATE INDEX V2_IDX on TABLE1(V2) include(v1);
> upsert into TABLE1 values('k1','v1_1',1);
> upsert into TABLE1 values('k2','v2_2',2);
> upsert into TABLE1 values('k1','v1_1',3);
> {code}
> The following is query results after executing `CsvBulkLoadTool`
> {code:sql}
> 0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas> select * from table1;
> +-----+-------+-----+
> | ID  |  V1   | V2  |
> +-----+-------+-----+
> | k2  | v2_2  | 2   |
> | k1  | v1_1  | 3   |
> +-----+-------+-----+
> 2 rows selected (0.066 seconds)
> 0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas>  select * from V1_IDX;
> +-------+------+-------+
> | 0:V1  | :ID  | 0:V2  |
> +-------+------+-------+
> | v1_1  | k1   | 3     |
> | v2_2  | k2   | 2     |
> +-------+------+-------+
> 2 rows selected (0.074 seconds)
> 0: jdbc:phoenix:hb-bp18j460748jq41v0-002.hbas>  select * from V2_IDX;
> +-------+------+-------+
> | 0:V2  | :ID  | 0:V1  |
> +-------+------+-------+
> | 1     | k1   | v1_1  |
> | 3     | k1   | v1_1  |
> | 2     | k2   | v2_2  |
> +-------+------+-------+
> 3 rows selected (0.062 seconds)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to