【详述】问题详细描述
sql:SELECT a.device_id,b.device_id
FROM test_db.app_log_new AS a
JOIN test_db.app_log_new AS b
ON a.device_id = b.device_id;
报错:Memory of process exceed limit. try consume:4294967296 Used: 54051743888, Limit: 56522069360. Mem usage has exceed the limit of BE
explain:
PLAN FRAGMENT 0
OUTPUT EXPRS:1: device_id | 65: device_id
PARTITION: UNPARTITIONED
RESULT SINK
5:EXCHANGE
PLAN FRAGMENT 1
OUTPUT EXPRS:
PARTITION: HASH_PARTITIONED: 1: device_id
STREAM DATA SINK
EXCHANGE ID: 05
UNPARTITIONED
4:HASH JOIN
| join op: INNER JOIN (PARTITIONED)
| colocate: false, reason:
| equal join conjunct: 1: device_id = 65: device_id
|
|----3:EXCHANGE
|
1:EXCHANGE
PLAN FRAGMENT 2
OUTPUT EXPRS:
PARTITION: RANDOM
STREAM DATA SINK
EXCHANGE ID: 03
HASH_PARTITIONED: 65: device_id
2:OlapScanNode
TABLE: app_log_new
PREAGGREGATION: ON
PREDICATES: 65: device_id IS NOT NULL
partitions=1/1
rollup: app_log_new
tabletRatio=50/50
tabletList=115244,115248,115252,115256,115260,115264,115268,115272,115276,115280 …
cardinality=6189418607
avgRowSize=0.564775
numNodes=0
PLAN FRAGMENT 3
OUTPUT EXPRS:
PARTITION: RANDOM
STREAM DATA SINK
EXCHANGE ID: 01
HASH_PARTITIONED: 1: device_id
0:OlapScanNode
TABLE: app_log_new
PREAGGREGATION: ON
PREDICATES: 1: device_id IS NOT NULL
partitions=1/1
rollup: app_log_new
tabletRatio=50/50
tabletList=115244,115248,115252,115256,115260,115264,115268,115272,115276,115280 …
cardinality=6189418607
avgRowSize=0.564775
numNodes=0
==========================================================================================================================================================================
sql:SELECT a.device_id,b.device_id
FROM test_db.app_log_new AS a
left JOIN test_db.app_log_new AS b
ON a.device_id = b.device_id;
能执行,并且毫秒出结果
explain:
PLAN FRAGMENT 0
OUTPUT EXPRS:1: device_id | 65: device_id
PARTITION: UNPARTITIONED
RESULT SINK
5:EXCHANGE
PLAN FRAGMENT 1
OUTPUT EXPRS:
PARTITION: HASH_PARTITIONED: 1: device_id
STREAM DATA SINK
EXCHANGE ID: 05
UNPARTITIONED
4:HASH JOIN
| join op: LEFT OUTER JOIN (PARTITIONED)
| colocate: false, reason:
| equal join conjunct: 1: device_id = 65: device_id
|
|----3:EXCHANGE
|
1:EXCHANGE
PLAN FRAGMENT 2
OUTPUT EXPRS:
PARTITION: RANDOM
STREAM DATA SINK
EXCHANGE ID: 03
HASH_PARTITIONED: 65: device_id
2:OlapScanNode
TABLE: app_log_new
PREAGGREGATION: ON
partitions=1/1
rollup: app_log_new
tabletRatio=50/50
tabletList=115244,115248,115252,115256,115260,115264,115268,115272,115276,115280 …
cardinality=6189418607
avgRowSize=0.564775
numNodes=0
PLAN FRAGMENT 3
OUTPUT EXPRS:
PARTITION: RANDOM
STREAM DATA SINK
EXCHANGE ID: 01
HASH_PARTITIONED: 1: device_id
0:OlapScanNode
TABLE: app_log_new
PREAGGREGATION: ON
partitions=1/1
rollup: app_log_new
tabletRatio=50/50
tabletList=115244,115248,115252,115256,115260,115264,115268,115272,115276,115280 …
cardinality=6189418607
avgRowSize=0.564775
numNodes=0
【背景】做过哪些操作?
发现同一个表60亿数据,做left join 可以秒出结果,使用join就爆内存不足
【业务影响】
【StarRocks版本】2.5.5
【集群规模】例如:1fe(8核 32G 内存)+12be(16核 64G内存)
【机器信息】阿里云的机子
【联系方式】社区群14群-zwk 微信号wenkang1451