Query problems in Apache Phoenix

Asked

Viewed 19 times

0

Hi. My team and I are having an Apache Phoenix-related problem. I wonder if anyone has come across this problem before or if we’re doing something wrong.

First, we create the following table:

create TABLE IF NOT EXISTS testing.PERSISTENCE
(
  FIELD_1 VARCHAR,
  FIELD_2 INTEGER NOT NULL,
  FIELD_3 VARCHAR,
  FIELD_4 VARCHAR,
  FC1.FIELD_5 VARCHAR,
  FC1.FIELD_6 VARCHAR,
  FC2.FIELD_7 VARCHAR,
  FC3.FIELD_8 VARCHAR,
  FC3.FIELD_9 VARCHAR,
  FC3.FIELD_10 VARCHAR,
  CONSTRAINT BALANCE_EDR_PK PRIMARY KEY (FIELD_1, FIELD_2, FIELD_3, FIELD_4, FIELD_5)
) IMMUTABLE_ROWS=true SPLIT ON (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
            17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
            33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
            49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
            65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
            81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
            97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
            113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
            129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
            145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
            161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
            177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
            193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
            209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
            225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
            241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256);

After creating this table, we populated some data on it.

When we try to execute the following query (which appears to be perfectly correct for us), no result is returned.

0: jdbc:phoenix:>  SELECT * FROM testing.PERSISTENCE WHERE FIELD_2 >= 20190410 AND FIELD_2 <= 20190423 AND FIELD_1 = '5571991529969' AND FIELD_3='242' AND FIELD_5 IN  ('MyEvent') AND FIELD_4='7fde6b19-e7e3-487c-8fc5-b087029355d3';

However, when executing the following query we have results.

0: jdbc:phoenix:>  SELECT * FROM testing.PERSISTENCE WHERE FIELD_2 >= 20190410 AND FIELD_2 <= 20190423 AND FIELD_1 = '5571991529969' AND FIELD_5 IN  ('MyEvent') AND FIELD_4='7fde6b19-e7e3-487c-8fc5-b087029355d3';

The only difference between them is the absence of FIELD_3. The strange thing is that this field is a PK of this table.

  • And in the second query is there a line where FIELD_3 is '242'? As for "The strange thing is that this field is a PK of this table." it seems to me that the field is part of Primary key and not that it is Primary key.

  • Yeah, he’s part of PK

  • So I didn’t understand your strangeness about the possible non-existence of a line where this field value doesn’t occur.

  • If it were his case to bring with the present field and not bring in the absence of it, it would make sense. The problem is that it happens just the opposite. When I have FIELD_3 in the query and all other conditions it does not return the expected.

1 answer

0

For others' reference, our temporary solution was to make N queries and then merge the results.

There is definitely a better solution. If anyone knows what it is, please answer this topic.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.