请问下Hologres,湖仓加速版查询maxcompute的数据,sql查询时长1-4秒不等,有什么优化途径吗?
以下为热心网友提供的参考意见
当查询MaxCompute外部表在Hologres中的数据时,如果查询时长在1-4秒之间不等,存在一些优化方法可供参考:
-
新建外部表加速查询:在Hologres中新建外部表,将数据存储于其中。这种方式可以提高查询性能,性能会有2-5倍的提升。
-
导入内表:除了创建外部表外,还可以选择将数据导入到Hologres的内表中。相比于外部表,内表的性能提升大约在10-100倍。
-
使用复杂查询来查询大量外表:在数据存储于OSS或者MaxCompute,查询数据频率低、延时要求低的场景下,可以考虑使用复杂查询来查询大量外表。
以下为热心网友提供的参考意见
比如MC侧建表时的分区剪裁 避免小文件过多 减少扫描列 是基本的优化思路 ,此回答整理自钉群“实时数仓Hologres交流群”
以下为热心网友提供的参考意见
通过创建外部表加速查询MaxCompute数据https://help.aliyun.com/zh/hologres/user-guide/create-a-foreign-table-in-hologres-to-accelerate-queries-of-maxcompute-data?spm=a2c4g.11186623.0.i26
注意事项
通过创建外部表加速查询MaxCompute数据时,您需要注意如下内容:
Hologres只能加速查询MaxCompute的内部表,不能查询MaxCompute的外部表和VIEW。
通过外部表方式加速查询MaxCompute数据,一次Query命中的数据量大小不超过200 GB,一次Query命中的分区数不超过512个。通过导入数据至Hologres内部表的方式则没有此限制。
MaxCompute的表数据更新之后,在Hologres存在缓存(一般为5分钟内)才能加速更新后的数据,如果您需要实时查询更新后的数据,可以使用IMPORT FOREIGN SCHEMA语法更新外部表元数据,就能实时查询更新后的数据。如果是数据导入场景,在V1.1.25+版本,无需手动重新刷新外部表元数据,导入语句会自动获取最新元数据。
MaxCompute的Schema更新之后,Hologres不会自动更新,需要手动更新。
MaxCompute的分区与Hologres无强映射关系,映射至Hologres之后均为普通字段。
MaxCompute与Hologres数据类型一一映射,建表时您可以查看映射关系,详情请参见数据类型汇总。
可以跨区域查询MaxCompute的数据,但是中国区域不能加速查询中国以外区域MaxCompute的数据,中国以外区域间不能相互加速查询。不建议使用跨区域查询加速,由于跨区域存在较多网络不可靠因素,查询稳定性无法保证,请保持Hologres和MaxCompute处于同一区域。
当访问MaxCompute加密表时,仅支持采用BYOK方式加密的表,详情请参见 查询MaxCompute加密数据(BYOK模式)
外部表不存储数据,数据存储在MaxCompute中。
Hologres从V1.3版本开始支持MaxCompute的Transactional表作为外部表进行查询。
当使用Streaming Tunnel写入MaxCompute表时,表会首先处于streaming状态,后台异步merge为ORC格式,Hologres不支持读取处于streaming状态的表,可以暂停写入并手动执行merge后读取。
Hologres从V1.3版本开始支持MaxCompute的MaxCompute Schema Evolution状态表(在MaxCompute侧执行过删除列、修改列顺序和修改列类型等操作的表)。
Hologres从V1.3版本开始支持读取MaxCompute的三层模型模式(即在原先的Project和Table之间增加了一层Schema的概念),暂不支持写入,更多描述请参见Schema操作。
从V1.3版本开始,Hologres和MaxCompute之间交互支持双签名认证,详情请参见创建Hologres外部表(双签名模式)。
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/11496.html