我和我的团队在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的一部分。