开发者社区 > 数据库 > 数据仓库 > 正文

云原生数据仓库AnalyticDB PostgreSQL版如何查看分区键?分布键呢?

云原生数据仓库AnalyticDB PostgreSQL版如何查看分区键?分布键呢?

展开
收起
真的很搞笑 2023-12-10 15:40:29 261 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在云原生数据仓库AnalyticDB PostgreSQL版中,你可以使用以下方法来查看表的分区键和分布键:

    • 首先,可以使用psql命令行工具通过执行"\d+ "命令来查看表的结构,其中包含了分区键的信息。

    • 另外,也可以通过执行SQL查询语句来查看表的分布键信息。例如,在ADB PG 4.3版本中,可以执行"SELECT attname FROM pg_attribute WHERE attrelid=''::regclass"这样的语句。这条语句将返回表中所有的属性名,包括分区键和分布键。

    关于分布键的选择策略,建议选择经常需要JOIN的列作为分布键,可以实现本地关联(Collocated JOIN)计算,因为当JOIN键和分布键一致时,可以在计算节点内部完成计算,从而提高查询性能。此外,AnalyticDB PostgreSQL版还支持节点裁剪功能,对于按分布键的简单查询(包括UPDATE和DELETE等语句),支持按节点的分布键进行数据节点裁剪。

    2023-12-11 13:49:34
    赞同 展开评论 打赏
  • WITH att_arr AS (SELECT unnest(paratts)
    FROM pg_catalog.pg_partition p
    WHERE p.parrelid = 'table_name'::regclass AND p.parlevel = 0 AND p.paristemplate = false),
    idx_att AS (SELECT row_number() OVER() AS idx, unnest AS att_num FROM att_arr)
    SELECT attname FROM pg_catalog.pg_attribute, idx_att
    WHERE attrelid = 'table_name'::regclass AND attnum = att_num ORDER BY idx;
    可以使用上面的SQL查询分区表的分区列,改一下上面的表名table_name
    \d+ tablename ,此回答整理自钉群“云原生数据仓库AnalyticDB PostgreSQL版交流群”

    2023-12-11 13:01:56
    赞同 展开评论 打赏

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 相关电子书

    更多
    阿里云云原生一体化数仓 立即下载
    基于云原生数据仓库AnalyticDB PG的最佳实践 立即下载
    新氧云原生全栈数仓最佳实践 立即下载

    相关镜像