本文介绍如何使用PolarDB MySQL版列存引擎读取OSS外表数据,实现列存表与外表的联合分析。
背景
随着业务发展,数据规模持续增长带来存储成本压力,业务逻辑日趋复杂对计算性能提出更高要求,同时数据也需要在多个分析系统之间自由流转。使用列存引擎读取OSS外表数据,可有效应对上述挑战:
低成本存储:OSS作为云原生存储方案,性价比高。
高性能计算:列存引擎提供极速查询与灵活的分析能力。
开放互通:ORC、Parquet等开放格式兼容性广、压缩比高,便于跨系统数据流转。
文件外表
外部表(External Table)是一种特殊的表类型,其数据实际存放于数据库外部的存储系统(如对象存储、HDFS、ODPS等),数据库仅保存元数据与访问路径。您可通过标准SQL查询外部表,从而实现对异构数据源的统一访问。
PolarDB支持以外部表的形式接入外部数据源。与普通表不同,PolarDB仅保存外部表对应的元数据,查询时直接向数据所在的外部数据源发起请求,数据本身不存储在PolarDB中。通过文件外部表,您可以直接查询外部存储系统上ORC和Parquet格式的数据文件,无需将数据导入数据库,也无需依赖任何Metastore服务。
有关文件外表的详细信息和使用方法,请参见分析外部OSS上的数据。
列存表与外表联合分析
列存表是PolarDB的列式存储引擎,可以与外表进行混合分析,实现在PolarDB集群上高性能计算多个来源的数据。通过列存表与外表的联合分析,您可以将PolarDB内部的列存数据与OSS上的外部数据进行关联查询和聚合分析,无需将外部数据导入数据库,即可在同一SQL中完成跨数据源的分析任务。
性能测试
ORC和Parquet文件外表的性能测试结果,请参见性能测试。
该文章对您有帮助吗?