StarRocks-hive数据类型导致的分区问题

news2024/12/28 21:02:39

背景:

有个hive的表,是月分区的(month_id),分区字段用的是string类型。数据量比较大,为了保证计算性能,所以把数据导入到SR里,构建一个内部表。但是在建表的时候想使用月分区使用partition by date_trunc('month', month_id),遇到一个问题,month_id在hive里是string类型并且是yyyyMM的格式,无法顺利建表。

解决方案:

建表语句:

CREATE TABLE `dws_m_topic_datausage_inc` ( 
  `gender` VARCHAR(10) COMMENT '性别', 
  `age_group` VARCHAR(255) COMMENT '年龄段', 
  `car_body_type` VARCHAR(255) COMMENT '车身类型', 
  `car_year` VARCHAR(255) COMMENT '车龄', 
  `phone_city` VARCHAR(255) COMMENT '手机号归属地', 
  `phone_province` VARCHAR(255) COMMENT '手机号归属地匹配省份', 
  `phone_city_level` VARCHAR(255) COMMENT '手机号城市等级',
  `month_id` varchar(255) comment '保留原始表的分区字段',
  `par_month`  DATE COMMENT '月分区格式yyyyMM'
)
DUPLICATE KEY(iccid,vin)
partition by date_trunc('month', par_month )
PROPERTIES (
  "replication_num" = "3",
xxxx
xxxx
);

为了保证数据不产生歧义,决定保留month_id这个hive里的原始的分区字段,但是为了保证查询的效率,得有一个分区字段。所以新增了一个par_month字段。

查看分区信息:

表里数据:

数据同步:

使用的是broker 的方式来的

load label dataproducts.dws_m_topic_datausage_inc_202412022124_label(
data infile("hdfs://xxxxx/warehouse/tablespace/external/hive/xxxxxx/month_id=202411/*")
into table dws_m_topic_datausage_inc
format as "orc"
(gender, age_group, car_body_type, car_year, phone_city, phone_province, phone_city_level)
columns from path as (month_id)  -- 这里只能是month_id ,否则会报错,因为这个是跟hdfs的路径对应的
set (par_month=str_to_date(concat(month_id,'01'),'%Y%m%d'))  -- 这里就是我们的分区字段
)
with broker 'broker1'
(
"timeout" = "3600",
"username" = "bigdata",
"password" = "1234",
"dfs.ha.namenodes.zwkjsc" = "nn1,nn2",
"dfs.namenode.rpc-address.zwkjsc.nn1" = "hdfs://xxxx/zwkj-zsgd-ubd04:8020",
"dfs.namenode.rpc-address.zwkjsc.nn2" = "hdfs://xxxx/zwkj-zsgd-ubd05:8020",
"dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
)

划重点:

  • columns from path as (month_id)  -- 这里只能是month_id ,否则会报错,因为这个是跟hdfs的路径对应的
  • set (par_month=str_to_date(concat(month_id,'01'),'%Y%m%d'))  -- 这里就是我们的分区字段,处理成了每个月的第一天,查询的时候要注意限定是yyyyMM01

数据查询:

但我们做数据查询的时候其实我们的par_month是 20241201这个格式。就是代表了202412月份。

select * from xxx  partition p202412

或者

select * from xxx where par_monht='20241201'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2257481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flume——进阶(agent特性+三种结构:串联,多路复用,聚合)

目录 agent特性ChannelSelector描述: SinkProcessor描述: 串联架构结构图解定义与描述配置示例Flume1(监测端node1)Flume3(接收端node3)启动方式 复制和多路复用结构图解定义描述配置示例node1node2node3启…

嵌入式学习(15)-stm32通用GPIO模拟串口发送数据

一、概述 在项目开发中可能会遇到串口不够用的情况这时候可以用通过GPIO来模拟串口的通信方式。 二、协议格式 按照1位起始位8位数据位1位停止位的方式去编写发送端的程序。起始位拉低一个波特率的时间;发送8位数据;拉高一个波特率的时间。 三、代码 …

【Go系列】:全面掌握 Sentinel Go —— 构建高可用微服务的流量控制、熔断、降级与系统防护体系

前言 在现代分布式系统架构中,服务的稳定性和可用性是至关重要的。随着微服务和云原生技术的发展,如何有效地进行流量控制、熔断降级以及系统保护成为了一个关键课题。Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制组件,它不仅…

多模态RAG:通用框架方案调研汇总

阅读原文 多模态检索增强生成是一种新兴的设计范式,允许AI模型与文本、图像、视频等存储进行交互。在介绍多模态 RAG 之前,我们先简单了解一下传统的检索增强生成 (RAG)。 标准 RAG RAG 的理念是找到与用户查询相关的核心信息,然后将该信息…

《HTML 的变革之路:从过去到未来》

一、HTML 的发展历程 图片: HTML 从诞生至今,经历了多个版本的迭代。 (一)早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准,提供了表格、文字绕排和复杂数学元素显示等新特性,但因实现复杂且缺乏浏览器…

游戏交易系统设计与实现

文末获取源码和万字论文,制作不易,感谢点赞支持。 题目:游戏交易系统设计与实现 摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询…

Mac mini m4本地跑大模型(ollama + llama + ComfyUI + Stable Diffusion | flux)

安装chat大模型(不推荐,本地运行的大模型只能聊废话,不如网页版使用openAI等高效) 首先下载ollama的安装包 https://ollama.com/ 点击启动访问:http://localhost:11434 Ollama is running 代表已经运行起来了&#x…

精品C++项目推荐:分布式kv存储系统

项目代码直接开源到Github:https://github.com/youngyangyang04/KVstorageBaseRaft-cpp 欢迎去star,fork! 项目背景相关 背景 在当今大规模分布式系统的背景下,需要可靠、高可用性的分布式数据存储系统。 传统的集中式数据库在…

Milvus中如何实现全文检索(Full Text Seach)?

在前两篇文章中(Milvus python库 pymilvus 常用操作详解之Collection(上) 和 Milvus python库 pymilvus 常用操作详解之Collection(下)),我们了解了Milvus基于dense vector和sparse vector实现的…

unity打包web,如何减小文件体积,特别是 Build.wasm.gz

unity打包WebGL,使用的是wasw,最终生成的Build.wasm.gz体积很大,有6.5M,有几个方法可以稍微减小这个文件的大小 1. 裁剪引擎代码: 此步可将大小从6.5减小到 6.2(此项默认开启,只是改了裁剪等级…

STM32 CubeMx HAL库 独立看门狗IWDG配置使用

看门狗这里我就不多介绍了,能搜到这篇文章说明你了解 总之就是一个单片机重启程序,设定好超时时间,在超时时间内没有喂狗,单片机就会复位 主要应用在单片机异常重启方面,比如程序跑飞(注意程序跑飞时你就…

Selenium:强大的 Web 自动化测试工具

Selenium:强大的 Web 自动化测试工具 在当今的软件开发和测试领域,自动化工具的重要性日益凸显。Selenium 就是一款备受欢迎的 Web 自动化测试工具,它为开发者和测试人员提供了强大的功能和便利。本文将详细介绍 Selenium 是什么&#xff0c…

幼儿园学校养老院供电安全解决方案

一、 电气火灾每年以30%的比例高居各类火灾原因。以50%到80%的比例高居重特大火灾。已成为业界重点关注的对象并为此进行着孜孜不倦的努力。2021年“119”消防日,国家应急管理部消防救援局公布了2021年1至10月份全国火灾形势报告。数据显示,从火灾种类来…

UnityShaderLab-实现沿y轴溶解效果

实现思路: 实现思路同UnityShaderLab-实现溶解效果-CSDN博客 ShaderGraph实现: ShaderLab实现: 效果: 未完待续。。。

5G Multi-TRP R16~R18演进历程

提升小区边缘用户的性能,在覆盖范围内提供更为均衡的服务质量,NR中引入了多TRP协作传输的方案。多TRP协作传输通过多个TRP之间进行非相干联合传输(Non Coherent-Joint Transmission,NC-JT)、重复传输/接收或…

deepin 搭建 hadoop singlenode

deepin 搭建 hadoop singlenode 一、准备 1、升级软件 sudo apt updatesudo apt -y dist-upgrade2、安装常用软件 sudo apt -y install gcc make openssl libssl-dev libpcre3 libpcre3-dev libgd-dev \rsync openssh-server vim man zip unzip net-tools tcpdump lrzsz ta…

计算机毕业设计Python中华古诗词知识图谱可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析模型 自然语言处理NLP 机器学习 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

pythonbug修复案例----修复 Python数据分析程序中的持续 Bug

在 Python 编程的世界里,Bug 就像隐藏在暗处的幽灵,时不时地跳出来捣乱。而持续出现的 Bug,则更是让人头疼不已。今天,就让我们一同踏上修复一个 Python 持续 Bug 的征程。 假设我们正在开发一个简单的数据分析程序,其…

YOLOv8改进,YOLOv8引入U-Netv2分割网络中SDI信息融合模块+GSConv卷积,助力小目标

理论介绍 完成本篇需要参考以下两篇文章,并已添加到YOLOv8代码中 YOLOv8改进,YOLOv8引入GSConv卷积+Slim-neck,助力小目标检测,二次创新C2f结构YOLOv8改进,YOLOv8引入U-Netv2分割网络中SDI信息融合模块,助力小目标检测下文都是手把手教程,跟着操作即可添加成功 目录 理…

双指针解题

双指针的使用范围 对于暴力解法的时间复杂度来说,双指针一般可以将暴力解法的时间复杂度降低一个量级. 常⻅的双指针有两种形式,⼀种是对撞指针,⼀种是左右指针. 快慢指针 ⼜称为⻳兔赛跑算法,其基本思想就是使⽤两个移动速度…