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

云数据仓库ADB里adb mysql查询表分区怎么弄?

云数据仓库ADB里adb mysql查询表分区怎么弄?

展开
收起
小小鹿鹿鹿 2024-01-17 22:18:44 79 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在云数据仓库ADB中,可以使用SHOW CREATE TABLE语句查看表的创建语句,并找到分区键和分区类型。然后使用SELECT语句查询表分区信息。具体步骤如下:

    1. 使用SHOW CREATE TABLE语句查看表的创建语句。例如:

      SHOW CREATE TABLE orders;
      

      在这里,我们假设需要查询名为orders的表的分区信息。

    2. 找到分区键和分区类型。在SHOW CREATE TABLE语句返回的结果中,可以找到CREATE TABLE语句中的PARTITION BY子句,其中定义了分区键和分区类型。例如:

      CREATE TABLE orders (order_id INT, order_date DATE, customer_id INT)
      PARTITIONED BY (partition_date DATE);
      

      在这里,我们找到了分区键为order_date,分区类型为RANGE。

    3. 使用SELECT语句查询表分区信息。根据分区键和分区类型,编写相应的SQL语句进行查询。例如:

      SELECT partition_name, table_rows, data_length, index_length
      FROM information_schema.partitions
      WHERE table_schema = '<database_name>' AND table_name = '<table_name>' AND partition_type = '<partition_type>';
      

      在这里,''、''和''需要替换为实际的数据库名称、表名称和分区类型。这条SQL语句将返回每个分区的名称、行数、数据长度和索引长度等信息。

    2024-01-18 13:15:26
    赞同 展开评论 打赏
  • 对于ADB MySQL查询表分区的问题:

    如果在ADB MySQL中创建了分区表并插入数据后发现分区未生效,需要手动执行BUILD TABLE命令来使分区生效。

    ADB MySQL当前仅支持单个分区列,不支持多个分区列的设置。

    在设计ADB MySQL表结构时,选择分布键(DISTRIBUTED BY HASH)可以实现数据的均匀分布和增量同步。参考链接:[1]。注意,应选择值分布均匀的字段作为分布键,并考虑将Join字段和高频查询条件字段作为分布键。每张表只能有一个分布键,且日期、时间类型的字段更适合作为二级分区键。

    如果在建表时设置了分区但查询表结构时分区未生效,请检查建表语句是否遵循表结构设计规范,例如确保主键中包含分布键和分区键,详情请参阅文档:[2]。

    ADB MySQL支持二级分区表。此回答来自钉群云数据仓库ADB-开发者群。

    2024-01-18 10:12:20
    赞同 展开评论 打赏
  • 可以通过如下语句,查询表的分区信息:

    SELECT shard_name, table_name, partition_id, row_count
    FROM INFORMATION_SCHEMA.KEPLER_CSTORE_PARTITION_XIHE_MERGED
    WHERE table_name like upper("%中文字符改成表名%")
    ORDER BY row_count DESC;
    

    image.png

    ——参考来源于阿里云官方文档

    2024-01-18 00:15:59
    赞同 1 展开评论 打赏

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 热门讨论

    热门文章

    相关电子书

    更多
    基于阿里云MaxCompute 构建企业云数据仓库CDW的最佳实践建议 立即下载
    PostgresChina2018_陶征霖_新一代数据仓库OushuDB架构剖析 立即下载
    MaxCompute数据仓库数据转换实践 立即下载