云计算之大数据(下)
目录
一、Hologres
1.1 产品定义
1.2 产品架构
1.3 Hologres基本概念
1.4 最佳实践 - Hologres分区表
1.5 最佳实践 - 分区字段设置
1.6 最佳实践 - 设置字段类型
1.7 最佳实践 - 存储属性设置
1.8 最佳实践 - 分布键设置
1.9 最佳实践 - 聚簇键设置
1.10 最佳实践 - 分段键设置
1.11 最佳实践 - 数据生命周期管理
1.12 最佳实践总结
二、Flink
2.1 产品定义
2.2 Flink架构
2.3 技术架构
2.4 功能架构
2.5 Flink任务自动调优
2.6 最佳实践 - Flink+Hologress实时数仓
2.7 最佳实践 - Flink任务反压
2.8 最佳实践 - Flink任务数据正确性问题处理
2.8.1 场景一:去重
2.8.2 场景二:filter
2.8.3 场景三:结果表主键Update结果不符合预期
2.8.4 场景四:维表JOIN
总结
一、Hologres
1.1 产品定义
阿里云Hologres是一款实时数仓产品,它融合了OLAP和OLTP的能力,能够支持用户进行实时的分析处理。
1.2 产品架构

- Frontend:认证、解析、优化
- Worker Node:计算资源
- HOS:轻量级调度框架
- Shard:数据分片
- Cache:分层精细化缓存
- Resource:容器资源管理
- Store:元数据管理
1.3 Hologres基本概念
| 名词 | 定义 |
| 实例 | 在Hologres中,实例(Instance)是您使用和管理数据库存储服务的实体,一个实例可以看作是多个数据库的合集,您对数据库的操作都是在该实例下完成。 |
| 数据库 | 一个模式的合集,用户所有的操作,包括表、函数等都是在数据库里完成。系统会在用户完成实例申请后默认创建一个“postgres”的数据库,该DB仅用于运维管理,实际业务需要新建DB |
| SCHEMA | schema为数据库对象的集合,类似一个文件系统中的目录,实例内的对象如表、函数等都存放于各个schema下,创建数据库成功后,会默认创建一个名叫public的schema |
| 表 | 表是数据存储单元,分为内部表和外部表 |
| 内部表 | 指数据存储在Hologres中的表,表中的数据类型可以是Hologres支持的任意一种类型。 |
| 外部表 | 指在Hologres不存储数据只做字段映射的表,外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引 |
| 分区表 | 被分割的表称为分区表,表通过明确列出每个分区中出现的键值进行分区,可以理解为分类,通过分类把不同类型的数据放在不同目录。 |
1.4 最佳实践 - Hologres分区表
- 父表按分区键(Partition Key)的值划分为不同的子表,子表对外可见。
- 分区表在使用时,需要提前创建子表。
- 分区表的不同分区子表采用不同的文件存储,查询时带上分区条件,指定所需查询的分区,避免全表扫描,快速定位存储文件,提高处理效率。通常将事实表按照日期划分为不同的分区表。

1.5 最佳实践 - 分区字段设置
使用建议:
- 单表的数据总量较⼤(超过1亿条)时,就需要考虑使用分区表
- 子表下的数据量要适中,通常在3亿~ 10亿条记录之间
- 整个集群的子表总数控制在10万个以内
- 如果您需要经常对某日数据进行整体替换,执行truncate操作,建议使用分区表
使用说明:
- 分区表的创建依然兼容Postgres语法,分区表方便用户管理数据,并能通过分区裁剪加快数据的查找。
- 不能向父表插入任何数据。
- 只有 TEXT/VARCHAR/INT 类型才能作为分区键。如果按天/小时分区要把日期存为TEXT格式。
- partition by 类型仅支持 list,切分 partition list 只能有一个值。
- 分区父表和子表必须要在同一个Schema。
- 若是表有主键,分区键必须是主键的一个子集。
- 分区表的数据不会自动删除,需要用户自己管理生命周期。
- 分区表太小,查询加速效果不明显,可以选择较大粒度的分区。
1.6 最佳实践 - 设置字段类型
- 尽量选用存储空间小的类型。
- 优先使用INT类型,而不是BIGINT类型。
- DECIMAL的精度尽量小。
- Group By的列不建议使用Float类型。
- 优先使用TEXT,而不是VARCHAR(n)和CHAR(n),n的取值尽量小。
- 日期类型使用TIMESTAMPTZ、DATE,避免使用TEXT。
- 使用一致的数据类型。
- 进行多表关联时,不同列尽量使用相同的数据类型。避免Hologres将不同类型的列进行隐示类型转换,造成额外的开销。
- UNION或Group By等操作使用DECIMAL类型。
- UNION或Group By等操作暂不支持DOUBLE PRECISION和FLOAT数据类型,需要使用DECIMAL类型。
1.7 最佳实践 - 存储属性设置
- 在Hologres中表默认为列存(column store)形式。列存对于OLAP场景较为友好,适合各种复杂查询、数据关联、扫描、过滤、统计。
- 行存对于key-value场景比较友好,适合基于primary key的点查和扫描scan。
- 列存会默认创建更多的索引,包括对字符串类型创建bitmap索引,这些索引可以显著加速查询过滤和统计,因此列比较多的表,会占用更多的存储空间,您可以通过关闭这些默认创建的索引,释放空间。
- 行存默认仅对主键创建索引,仅支持主键的快速查询,因此使用的存储空间更少,但使用场景也受到限制。
- 从HologresV1.1版本开始支持行列共存的格式。行列共存是同时具备了上述的能力,即支持高效点查也支持OLAP分析,
相关文章:
云计算之大数据(下)
目录 一、Hologres 1.1 产品定义 1.2 产品架构 1.3 Hologres基本概念 1.4 最佳实践 - Hologres分区表 1.5 最佳实践 - 分区字段设置 1.6 最佳实践 - 设置字段类型 1.7 最佳实践 - 存储属性设置 1.8 最佳实践 - 分布键设置 1.9 最佳实践 - 聚簇键设置 1.10 最佳实践 -…...
硬件工程师笔试面试知识器件篇——二极管
目录 4、二极管 4.1、基础 二极管原理图 二极管实物图 4.1.1、基本特性 4.1.2、常见类型 4.1.3、工作原理 4.1.4、应用领域 4.2、相关问题 4.2.1、二极管的PN结是如何形成的? 4.2.2、发光二极管(LED)的工作原理是什么? 4.2.3、在电子电路中,二极管通常如何应用?…...
操作系统安全保护
操作系统安全概述 概念:满足安全策略要求,具有响应安全机制及安全功符合特定安全标准,在一定约束条件下 能抵御常见网络安全威胁,保障自身安全运行及资源安全 安全等级:根据安全功能和安全保障要求分为 用户自主保护…...
STM32硬件篇:W25Q64
W25Q64简介 W25Qxx系列是一种低成本、小型化、使用简单(使用SPI通信协议)的非易失性(掉电不丢失)存储器,常用于数据存储、字库存储、固件程序存储等场景。 【注意】W25Qxx芯片只支持SPI的模式0和模式3。 存储介质&am…...
uni-app 获取当前位置的经纬度以及地址信息
文章目录 uni.getLocation(objc)获取经纬度和地址调试结果问题 uni-app 获取当前位置的经纬度以及地址信息 uni.getLocation(objc) uni-app官方文档定位API: uni.getLocation(OBJECT) uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度&…...
【CSS】尺寸单位
在 CSS 中,常见的尺寸单位有以下几种: 像素(px): 这是最常用的绝对单位。例如 width: 200px; 表示宽度为 200 像素。像素是固定的尺寸,不会随着屏幕分辨率或设备的不同而变化。 备注: 在不同的…...
Agent(智能体)和 MetaGPT,一句话实现整个需求应用代码
前面 2 篇文章,我们使用文生文、文生图和文生音频三个大模型共同实现了图文并茂的儿童绘本故事和绘本故事音频需求: 第一篇 根据主题生成儿童绘本故事:GLM-4-Flash 大模型 API 免费了,手把手构建“儿童绘本”应用实战(…...
[数据结构] 哈希结构的哈希冲突解决哈希冲突
标题:[C] 哈希结构的哈希冲突 && 解决哈希冲突 水墨不写bug 目录 一、引言 1.哈希 2.哈希冲突 3.哈希函数 二、解决哈希冲突 1.闭散列 I,线性探测 II,二次探测 2.开散列 正文开始: 一、引言 哈希表是一种非常实用而…...
Wimdows使用Appium IOS自动化
启动appium服务器: appium -a 127.0.0.1 -p 4724 配置 { "platformName": "iOS", "appium:platformVersion": "16.5.1", "appium:deviceName": "(★StatTrak™) |午夜黑(崭新出厂&#…...
C语言深度剖析--不定期更新的第四弹
哈哈哈哈哈哈,今天一天两更! void关键字 void关键字不能用来定义变量,原因是void本身就被编译器解释为空类型,编译器强制地不允许定义变量 定义变量的本质是:开辟空间 而void 作为空类型,理论上不应该开…...
【手撕数据结构】八大排序神功(上)
目录 冒泡排序【有点拉胯】动图演示:思路解析单趟算法图解代码详解性能优化复杂度分析 直接插入排序【还阔以】动图演示思路解析代码分析与讲解复杂度分析 希尔排序【有点强】动图演示思路讲解排序过程总览代码分析讲解复杂度分析 堆排序【太有石粒啦】动图演示堆的概念与结构向…...
【2024高教社杯全国大学生数学建模竞赛】B题模型建立求解
目录 1问题重述1.1问题背景1.2研究意义1.3具体问题 2总体分析3模型假设4符号说明(等四问全部更新完再写)5模型的建立与求解5.1问题一模型的建立与求解5.1.1问题的具体分析5.1.2模型的准备 目前B题第一问的详细求解过程以及对应论文部分已经完成ÿ…...
OpenHarmony鸿蒙开发( Beta5.0)智能手表应用开发实践
样例简介 本项目是基于BearPi套件开发的智能儿童手表系统,该系统通过与GSM模块(型号:SIM808)的通信来实现通话和定位功能。 智能儿童手表系统可以通过云和手机建立连接,同步时间和获取天气信息,通过手机下…...
共享单车轨迹数据分析:以厦门市共享单车数据为例(一)
共享单车数据作为交通大数据的一个重要组成部分,在现代城市交通管理和规划中发挥着越来越重要的作用。通过对共享单车的数据进行深入分析,城市管理者和规划者能够获得大量有价值的洞察,这些洞察不仅有助于了解城市居民的日常出行模式…...
SprinBoot+Vue在线商城微信小程序的设计与实现
目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平…...
4--SpringBootWeb-请求响应
目录 postman 1.简单参数 请求参数名与形参变量名一致时 请求参数名与形参变量名不一致时 2.实体参数 简单实体对象 复杂实体对象 3.数组集合参数 数组 集合 4.日期参数 5.JSON参数 6.路径参数 1 2 postman Postman值一款功能强大的网页调试与发送网页HTTP请求的…...
电脑点击关机之后,又自动重启开机了。根本就关不了?
前言 有个小姐姐说,她家的电脑好生奇怪:点击【关机】按钮之后,电脑提示【正在关机】,过了几秒,电脑又自动开机了…… 好家伙!也就是说关机和重启根本就没区别,电脑完全无法断电。 最后忍无可…...
强化网络安全:通过802.1X协议保障远程接入设备安全认证
随着远程办公和移动设备的普及,企业网络面临着前所未有的安全挑战。为了确保网络的安全性,同时提供无缝的用户体验,我们的 ASP 身份认证平台引入了先进的 802.1X 认证协议,确保只有经过认证的设备才能接入您的网络。本文档将详细介…...
链动2+1模式AI智能名片S2B2C商城小程序源码在社群商业价值构建中的应用探索
摘要:在数字经济浪潮的推动下,社群作为商业生态的核心组成部分,其商业价值正以前所未有的速度增长。本文深入探讨了如何通过“链动21模式AI智能名片S2B2C商城小程序源码”这一前沿技术工具,深度挖掘并优化社群的商业价值。通过详细…...
基于SpringBoot+Vue+MySQL的校园周边美食探索及分享平台
系统背景 在当今数字化时代,校园生活正日益融入信息技术的浪潮之中,学生们对于便捷、高效且富有趣味性的生活方式有着越来越高的追求。特别是在饮食文化方面,随着校园周边餐饮业态的日益丰富,学生们渴望一个能够集美食探索、分享与…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
