基本语法
MPP计算引擎模式下,INSERT FROM SELECT的基本语法与LM计算引擎模式一致,请参考“4.2.3 INSERT FROMSELECT语法”章节。
多种引擎模式下的执行
在MPP模式下,INSERT FROM SELECT支持两种执行方式:
- SELECT部分的查询走MPP模式,数据批量返回FRONTNODE节点,以批量的方式发起实时数据INSERT,默认一批的记录数为100条:
- /*+engine=MPP*/INSERT INTO db_name.target_table_name (col1, col2, col3)
- SELECT col1, col2, col3 FROM db_name.source_table_name
- WHERE col4 = 'xxx';
- 上述模式中,所有数据由FRONTNODE节点单点写入,并发度受限,为提高并发度,还有一种模式为Native MPP INSERT fromSELECT,数据写入节点直接由多个worker节点并发完成,每次batch一批的记录数还是100条, 通过指定mppNativeInsertFromSelect=true 的hint走这种模式:
- /*+engine=MPP, mppNativeInsertFromSelect=true*/INSERT INTO db_name.target_table_name (col1, col2, col3)
- SELECT col1, col2, col3 FROM db_name.source_table_name
- WHERE col4 = 'xxx';