gpt4 book ai didi

hive - Hive中基于分区和非分区列的查询

转载 作者:行者123 更新时间:2023-12-04 07:20:52 25 4
gpt4 key购买 nike

我有一个外部 Hive 表,如下所示:-

CREATE external TABLE sales (
ItemNbr STRING,
itemShippedQty INT,
itemDeptNbr SMALLINT,
gateOutUserId STRING,
code VARCHAR(3),
trackingId STRING,
baseDivCode STRING
)
PARTITIONED BY (countryCode STRING, sourceNbr INT, date STRING)
STORED AS PARQUET
LOCATION '/user/sales/';
其中表按 3 列( countryCode、sourceNbr、date)进行分区。我知道如果我基于这 3 个分区列进行查询,我的查询会更快。
我对其他查询模式有一些疑问:-
  • 如果我添加非分区列以及分区列,如 countryCode、sourceNbr、date、项目编号 作为执行 sql 查询时 where 条件的一部分,它会扫描整个表还是只扫描文件夹内部基于 countryCode、sourceNbr、date 并查找 where 条件中指定的 itemNbr 属性值?
  • 提供所有列对于过滤记录或
    子过滤器也可以像我只给出前 2 列一样工作
    (countryCode, sourceNbr ) 作为 where 条件的一部分。在这种情况下
    它会扫描整个表格,或者只会在文件夹内搜索
    基于 2 列条件 (countryCode, sourceNbr) ?
  • 最佳答案

    分区修剪适用于所有情况,无论所有分区列都在 WHERE 中还是仅部分,其他过滤器不会影响分区修剪。
    要检查它使用 EXPLAIN EXTENDED命令,见 https://stackoverflow.com/a/50859735/2700344

    关于hive - Hive中基于分区和非分区列的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68512621/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com