Я и моя команда сталкиваемся с проблемой в Apache Phoenix, и мы хотели бы знать, было ли это у кого-то еще и / или мы что-то не так делаем.
Мы создали таблицу наподобие:
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);
После создания этой таблицы мы заполнили ее некоторыми записями.
Когда я пытаюсь выполнить этот запрос (который выглядит для нас совершенно правильным), мы не получили никаких результатов.
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';
Но, когда мы выполним это, мы получим результаты.
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';
Единственная разница между ними - отсутствие FIELD_3.Что нас действительно смущает, так как FIELD_3 является частью PK.