数据仓库服务 GAUSSDB(DWS)-CREATE TABLE:列存表的Delta表差异

时间:2024-10-10 20:51:47

列存表的Delta表差异

表1 HStore表与列存表的辅助Delta表差异

数仓类型

列存的delta表

HStore的delta表

HStore Opt的delta表

表结构

与列存主表的表定义一致。

与主表定义不一致。

不同于主表,与HStore表相同。

功能

用于暂存小批量insert的数据,满阈值后再merge到主表,避免直接insert到主表产生大量小CU。

用于持久化存储update/delete/insert信息。在产生故障后用于恢复内存更新链等管理并发更新的内存结构。

用于持久化存储update/delete/insert信息。在产生故障后用于恢复内存更新链等管理并发更新的内存结构。相比HStore进一步优化。

缺陷

来不及merge导致delta表膨胀,影响查询性能,同时无法解决并发update的锁冲突问题

依赖后台常驻autovacuum来做merge操作。

依赖后台常驻autovacuum来做merge操作。

入库建议

  1. 综合入库、查询和空间情况,建议选择hstore_opt表,微批copy无更新入库场景性能要求高的情况下选择hstore表。
  2. HStore/HStore Opt共同点:
    • update入库性能差,建议修改为upsert。
    • delete入库,确定计划走索引扫描即可,用JDBC batch方式入库最佳。
    • merge into入库建议在单次入库数据量超过100W/dn,且无并发数据保证无重复的情况下使用。
    • 尽量避免设置 default_orientation,因为存在较高风险。
    • 尽量避免对冷分区的数据进行修改和新增。
  3. HStore的upsert入库建议:
    • 选择流程:

    第1步:部分列upsert选择方式二,全列upsert(遇到冲突update所有列到新值且没有表达式)进入第2步判断。

    第2步:数据入库是否会并发更新到同一个key,没有冲突时选择方式一,有冲突时进入第3步判断。

    第3步:入库的数据可能遇到重复数据,选择方式二,否则进入第4步判断。

    第4步:入库的方式是copy攒批临时表时,选择方式三,否则(包括jdbc的batch入库,简单的单行入库)选择方式二

    • 配置方式选项解释:
      • 方式一:enable_hstore_nonconflict_upsert_optimization开启+enable_hstore_partial_upsert_optimization关闭。
      • 方式二:enable_hstore_nonconflict_upsert_optimization关闭+enable_hstore_partial_upsert_optimization开启。
      • 方式三:enable_hstore_nonconflict_upsert_optimization关闭+enable_hstore_partial_upsert_optimization关闭。
    • 附加说明:攒批小于2000使用batch模式入库,大于2000使用copy临时表模式入库。
  4. HStore Opt的upsert入库建议:

    无并发冲突下开启enable_hstore_nonconflict_upsert_optimization参数,其他场景都关闭即可,会自动选择最优路径。

点查建议

  1. 综合点查场景,建议使用HStore Opt表。
  2. HStore/HStore Opt共同点:

    在等值过滤条件使用最多且distinct值分布相对均匀的一个列上创建二级分区。

  3. HStore的点查建议:
    • 使用主键之外的索引加速不能得到预期效果,不建议开启。
    • 如果数据类型多为numeric或者16字节以内的字符串,建议使用turbo加速。
  4. HStore Opt的点查建议:
    • 除了二级分区之外的等值过滤列,如果过滤条件涉及的列在查询中基本固定,使用cbtree索引,如果不断变化建议使用GIN索引,注意创建索引的列数不要超过5列。
    • 所有涉及等值过滤的字符串列,都可以建表时指定bitmap索引,不限列数,但后续不可修改。
    • 时间范围过滤的列,指定为分区列。
    • 点查返回数据量超过10W/dn的场景,索引扫描的性能提升有限,建议针对这种情况使用guc参数enable_seqscan对比测试,灵活选择。
support.huaweicloud.com/HyDevg-830-dws/dws_15_00005.html