hi, super thanks for reply.the table schema and partitioning info is:
Schema
ColumnIDTypeEncodingCompressionRead defaultWrite default
key0string NOT NULLPREFIX_ENCODINGLZ4--
metric_value1string NOT NULLAUTO_ENCODINGLZ4--
dimension_002string NOT NULLAUTO_ENCODINGLZ4--
dimension_013string NOT NULLAUTO_ENCODINGLZ4--
dimension_024string NOT NULLAUTO_ENCODINGLZ4--
dimension_035string NOT NULLAUTO_ENCODINGLZ4--
dimension_046string NOT NULLAUTO_ENCODINGLZ4--
Partition Schema
RANGE (key) ( PARTITION VALUES < "005000", PARTITION "005000" <= VALUES
< "010000", PARTITION "010000" <= VALUES < "015000", PARTITION "015000"
<= VALUES < "020000", PARTITION "020000" <= VALUES < "025000",
PARTITION "025000" <= VALUES < "030000", PARTITION "030000" <= VALUES <
"035000", PARTITION "035000" <= VALUES < "040000", PARTITION "040000"
<= VALUES < "045000", PARTITION "045000" <= VALUES < "050000",
PARTITION "050000" <= VALUES < "055000", PARTITION "055000" <= VALUES <
"060000", PARTITION "060000" <= VALUES < "065000", PARTITION "065000"
<= VALUES < "070000", PARTITION "070000" <= VALUES < "075000",
PARTITION "075000" <= VALUES < "080000", PARTITION "080000" <= VALUES <
"085000", PARTITION "085000" <= VALUES < "090000", PARTITION "090000"
<= VALUES < "095000", PARTITION "095000" <= VALUES < "100000",
PARTITION "100000" <= VALUES < "1000000", PARTITION "1000000" <= VALUES <
"105000", PARTITION "105000" <= VALUES < "110000", PARTITION "110000"
<= VALUES < "115000", PARTITION "115000" <= VALUES < "120000",
PARTITION "120000" <= VALUES < "125000", PARTITION "125000" <= VALUES <
"130000", PARTITION "130000" <= VALUES < "135000", PARTITION "135000"
<= VALUES < "140000", PARTITION "140000" <= VALUES < "145000",
PARTITION "145000" <= VALUES < "150000", PARTITION "150000" <= VALUES <
"155000", PARTITION "155000" <= VALUES < "160000", PARTITION "160000"
<= VALUES < "165000", PARTITION "165000" <= VALUES < "170000",
PARTITION "170000" <= VALUES < "175000", PARTITION "175000" <= VALUES <
"180000", PARTITION "180000" <= VALUES < "185000", PARTITION "185000"
<= VALUES < "190000", PARTITION "190000" <= VALUES < "195000",
PARTITION "195000" <= VALUES < "200000", PARTITION "200000" <= VALUES <
"205000", PARTITION "205000" <= VALUES < "210000", PARTITION "210000"
<= VALUES < "215000", PARTITION "215000" <= VALUES < "220000",
PARTITION "220000" <= VALUES < "225000", PARTITION "225000" <= VALUES <
"230000", PARTITION "230000" <= VALUES < "235000", PARTITION "235000"
<= VALUES < "240000", PARTITION "240000" <= VALUES < "245000",
PARTITION "245000" <= VALUES < "250000", PARTITION "250000" <= VALUES <
"255000", PARTITION "255000" <= VALUES < "260000", PARTITION "260000"
<= VALUES < "265000", PARTITION "265000" <= VALUES < "270000",
PARTITION "270000" <= VALUES < "275000", PARTITION "275000" <= VALUES <
"280000", PARTITION "280000" <= VALUES < "285000", PARTITION "285000"
<= VALUES < "290000", PARTITION "290000" <= VALUES < "295000",
PARTITION "295000" <= VALUES < "300000", PARTITION "300000" <= VALUES <
"305000", PARTITION "305000" <= VALUES < "310000", PARTITION "310000"
<= VALUES < "315000", PARTITION "315000" <= VALUES < "320000",
PARTITION "320000" <= VALUES < "325000", PARTITION "325000" <= VALUES <
"330000", PARTITION "330000" <= VALUES < "335000", PARTITION "335000"
<= VALUES < "340000", PARTITION "340000" <= VALUES < "345000",
PARTITION "345000" <= VALUES < "350000", PARTITION "350000" <= VALUES <
"355000", PARTITION "355000" <= VALUES < "360000", PARTITION "360000"
<= VALUES < "365000", PARTITION "365000" <= VALUES < "370000",
PARTITION "370000" <= VALUES < "375000", PARTITION "375000" <= VALUES <
"380000", PARTITION "380000" <= VALUES < "385000", PARTITION "385000"
<= VALUES < "390000", PARTITION "390000" <= VALUES < "395000",
PARTITION "395000" <= VALUES < "400000", PARTITION "400000" <= VALUES <
"405000", PARTITION "405000" <= VALUES < "410000", PARTITION "410000"
<= VALUES < "415000", PARTITION "415000" <= VALUES < "420000",
PARTITION "420000" <= VALUES < "425000", PARTITION "425000" <= VALUES <
"430000", PARTITION "430000" <= VALUES < "435000", PARTITION "435000"
<= VALUES < "440000", PARTITION "440000" <= VALUES < "445000",
PARTITION "445000" <= VALUES < "450000", PARTITION "450000" <= VALUES <
"455000", PARTITION "455000" <= VALUES < "460000", PARTITION "460000"
<= VALUES < "465000", PARTITION "465000" <= VALUES < "470000",
PARTITION "470000" <= VALUES < "475000", PARTITION "475000" <= VALUES <
"480000", PARTITION "480000" <= VALUES < "485000", PARTITION "485000"
<= VALUES < "490000", PARTITION "490000" <= VALUES < "495000",
PARTITION "495000" <= VALUES < "500000", PARTITION "500000" <= VALUES <
"505000", PARTITION "505000" <= VALUES < "510000", PARTITION "510000"
<= VALUES < "515000", PARTITION "515000" <= VALUES < "520000",
PARTITION "520000" <= VALUES < "525000", PARTITION "525000" <= VALUES <
"530000", PARTITION "530000" <= VALUES < "535000", PARTITION "535000"
<= VALUES < "540000", PARTITION "540000" <= VALUES < "545000",
PARTITION "545000" <= VALUES < "550000", PARTITION "550000" <= VALUES <
"555000", PARTITION "555000" <= VALUES < "560000", PARTITION "560000"
<= VALUES < "565000", PARTITION "565000" <= VALUES < "570000",
PARTITION "570000" <= VALUES < "575000", PARTITION "575000" <= VALUES <
"580000", PARTITION "580000" <= VALUES < "585000", PARTITION "585000"
<= VALUES < "590000", PARTITION "590000" <= VALUES < "595000",
PARTITION "595000" <= VALUES < "600000", PARTITION "600000" <= VALUES <
"605000", PARTITION "605000" <= VALUES < "610000", PARTITION "610000"
<= VALUES < "615000", PARTITION "615000" <= VALUES < "620000",
PARTITION "620000" <= VALUES < "625000", PARTITION "625000" <= VALUES <
"630000", PARTITION "630000" <= VALUES < "635000", PARTITION "635000"
<= VALUES < "640000", PARTITION "640000" <= VALUES < "645000",
PARTITION "645000" <= VALUES < "650000", PARTITION "650000" <= VALUES <
"655000", PARTITION "655000" <= VALUES < "660000", PARTITION "660000"
<= VALUES < "665000", PARTITION "665000" <= VALUES < "670000",
PARTITION "670000" <= VALUES < "675000", PARTITION "675000" <= VALUES <
"680000", PARTITION "680000" <= VALUES < "685000", PARTITION "685000"
<= VALUES < "690000", PARTITION "690000" <= VALUES < "695000",
PARTITION "695000" <= VALUES < "700000", PARTITION "700000" <= VALUES <
"705000", PARTITION "705000" <= VALUES < "710000", PARTITION "710000"
<= VALUES < "715000", PARTITION "715000" <= VALUES < "720000",
PARTITION "720000" <= VALUES < "725000", PARTITION "725000" <= VALUES <
"730000", PARTITION "730000" <= VALUES < "735000", PARTITION "735000"
<= VALUES < "740000", PARTITION "740000" <= VALUES < "745000",
PARTITION "745000" <= VALUES < "750000", PARTITION "750000" <= VALUES <
"755000", PARTITION "755000" <= VALUES < "760000", PARTITION "760000"
<= VALUES < "765000", PARTITION "765000" <= VALUES < "770000",
PARTITION "770000" <= VALUES < "775000", PARTITION "775000" <= VALUES <
"780000", PARTITION "780000" <= VALUES < "785000", PARTITION "785000"
<= VALUES < "790000", PARTITION "790000" <= VALUES < "795000",
PARTITION "795000" <= VALUES < "800000", PARTITION "800000" <= VALUES <
"805000", PARTITION "805000" <= VALUES < "810000", PARTITION "810000"
<= VALUES < "815000", PARTITION "815000" <= VALUES < "820000",
PARTITION "820000" <= VALUES < "825000", PARTITION "825000" <= VALUES <
"830000", PARTITION "830000" <= VALUES < "835000", PARTITION "835000"
<= VALUES < "840000", PARTITION "840000" <= VALUES < "845000",
PARTITION "845000" <= VALUES < "850000", PARTITION "850000" <= VALUES <
"855000", PARTITION "855000" <= VALUES < "860000", PARTITION "860000"
<= VALUES < "865000", PARTITION "865000" <= VALUES < "870000",
PARTITION "870000" <= VALUES < "875000", PARTITION "875000" <= VALUES <
"880000", PARTITION "880000" <= VALUES < "885000", PARTITION "885000"
<= VALUES < "890000", PARTITION "890000" <= VALUES < "895000",
PARTITION "895000" <= VALUES < "900000", PARTITION "900000" <= VALUES <
"905000", PARTITION "905000" <= VALUES < "910000", PARTITION "910000"
<= VALUES < "915000", PARTITION "915000" <= VALUES < "920000",
PARTITION "920000" <= VALUES < "925000", PARTITION "925000" <= VALUES <
"930000", PARTITION "930000" <= VALUES < "935000", PARTITION "935000"
<= VALUES < "940000", PARTITION "940000" <= VALUES < "945000",
PARTITION "945000" <= VALUES < "950000", PARTITION "950000" <= VALUES <
"955000", PARTITION "955000" <= VALUES < "960000", PARTITION "960000"
<= VALUES < "965000", PARTITION "965000" <= VALUES < "970000",
PARTITION "970000" <= VALUES < "975000", PARTITION "975000" <= VALUES <
"980000", PARTITION "980000" <= VALUES < "985000", PARTITION "985000"
<= VALUES < "990000", PARTITION "990000" <= VALUES < "995000",
PARTITION VALUES >= "995000" )
i did not delete rows in this table ever.
my scanner code is below:
buildKey method will build the lower bound and the upper bound, the unique id
is same, the startRow offset(third part) is 0, and the endRow offset is
99999999, startRow and endRow only differs from time.
though the max offset is big(9999999), generally it is less than 100.
private KuduScanner buildScanner(Metric startRow, Metric endRow, List<Integer>
dimensionIds, List<DimensionFilter> dimensionFilterList) {
KuduTable kuduTable =
kuduService.getKuduTable(BizConfig.parseFrom(startRow.getBizId()));
PartialRow lower = kuduTable.getSchema().newPartialRow();
lower.addString("key", buildKey(startRow));
PartialRow upper = kuduTable.getSchema().newPartialRow();
upper.addString("key", buildKey(endRow));
LOG.info("build scanner. lower = {}, upper = {}", buildKey(startRow),
buildKey(endRow));
KuduScanner.KuduScannerBuilder builder =
kuduService.getKuduClient().newScannerBuilder(kuduTable);
builder.setProjectedColumnNames(COLUMNS);
builder.lowerBound(lower);
builder.exclusiveUpperBound(upper);
builder.prefetching(true);
builder.batchSizeBytes(MAX_BATCH_SIZE);
if (CollectionUtils.isNotEmpty(dimensionFilterList)) {
for (int i = 0; i < dimensionIds.size() && i < MAX_DIMENSION_NUM; i++) {
for (DimensionFilter dimensionFilter : dimensionFilterList) {
if (!Objects.equals(dimensionFilter.getDimensionId(),
dimensionIds.get(i))) {
continue;
}
ColumnSchema columnSchema =
kuduTable.getSchema().getColumn(String.format("dimension_%02d", i));
KuduPredicate predicate = buildKuduPredicate(columnSchema,
dimensionFilter);
if (predicate != null) {
builder.addPredicate(predicate);
LOG.info("add predicate. predicate = {}",
predicate.toString());
}
}
}
}
return builder.build();
}
i checked the metrics, only get content below, it seems no relationship with my
table.
[ { "type": "tablet", "id":
"00000000000000000000000000000000", "attributes": {
"partition": "RANGE (entry_type, entry_id) PARTITION UNBOUNDED",
"table_name": "sys.catalog", "table_id": "sys.catalog.id"
}, "metrics": [ { "name":
"scanner_rows_returned", "value": 0 },
{ "name": "scanner_rows_scanned", "value": 0
} ] } ]