美文网首页
Hive获取最新分区

Hive获取最新分区

作者: DDDDavid | 来源:发表于2018-11-08 14:27 被阅读0次

为了增加代码健壮性,有时候获取数据表分区不能写死固定的时间,或者sysdate(-1)。

因此需要获取表的最新分区,然后取该分区的数据。

1、show partitions table_name;

只能看有啥分区,不能应用;

2、select dt from table_name where dt >= sysdate( - 10) group by dt order by dt desc limit 1;

限制一段时间,先分组group by,再排序order by desc,最后输出limit 1,测试速度略慢于方法3;

3、select max(dt) from app.p_sku_to_age_4cate where dt >= sysdate( - 10)

限制一段时间,取分区最大的,主要缺点是需要扫描全部分区的数据进行比较,但代码简便;

4、python 调shell 再调hive 执行showpartitions。

import subprocess
def get_table_info(last_day, table_name):
    cmd = """
        hive -e "show partitions """+table_name+"""" | sort -n -r | awk '{print $1}'
        """
    info = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True)
    dtinfo=info.communicate()[0]
    dtlist=str(dtinfo,encoding = "utf-8").split("\n")
    pt=dtlist[0].split("/")
    dt=[dt.split("=")[1] for dt in pt if 'dt=' in dt][0]
    return dt[:10]
pv_dt = get_table_info(last_day, "table_name")

相关文章

  • Hive获取最新分区

    为了增加代码健壮性,有时候获取数据表分区不能写死固定的时间,或者sysdate(-1)。 因此需要获取表的最新分区...

  • 动态分区说明

    Hive分区 Hive的动态分区 概述 hive中支持两种类型的分区: 静态分区SP(static partiti...

  • Hive 分区/分桶

    分区/桶 Hive 分区 Hive的分区方式:由于Hive实际上是数据文件在HDFS存在的目录区分分区字段是虚拟列...

  • Hive系列之分区表和桶

    为提升hive数据的查询和写入性能, hive提供了分区表机制。hive每个表格可以指定多个分区key, 这些分区...

  • hive集群迁移

    一、主要任务 1、建立hive表2、建立分区3、验证数据4、配置调度任务5、校验任务 二、hive建表语句 获取所...

  • Hive01

    Hive 启动 Hive 启动方式 建表语法【单分区】示例: 加载【单分区】数据示例: 【多分区】示例: 加载【多...

  • 大数据之Hive03-分区partition详解(静态分区,动态

    一、前言 Hive分区是为了方便数据管理Hive的分区方式:由于Hive实际是存储在HDFS上的抽象,Hive的一...

  • Hive 1.2.1 分区和分捅

    1. 借鉴 Hive学习笔记——Hive中的分桶Hive分区和分桶(0925)HIVE表索引,分区和分桶的区别 2...

  • Hive表

    Hive分区 描述: Hive分区根据某字段的值分区1.可以多维度分区2.分区不会影响大范围查询的执行效率3.每个...

  • 大数据开发之Hive篇19-Hive分区表详解

    备注:Hive 版本 2.1.1 一.Hive分区表概述 数据分区的概念以及存在很久了,通常使用分区来水平分散压力...

网友评论

      本文标题:Hive获取最新分区

      本文链接:https://www.haomeiwen.com/subject/salwxqtx.html