云计算之大数据(下)

news2024/12/28 19:17:10

目录

一、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 最佳实践总结

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分析,

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

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

相关文章

C# WPF燃气报警器记录读取串口工具

C# WPF燃气报警器记录读取串口工具 概要串口帧数据布局文件代码文件运行效果源码下载 概要 符合国标文件《GB15322.2-2019.pdf》串口通信协议定义;可读取燃气报警器家用版设备历史记录信息等信息; 串口帧数据 串口通信如何确定一帧数据接收完成是个…

golang学习笔记06——怎么实现本地文件及目录监控-fsnotify

推荐学习文档 基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学习笔记04——如何真正写好Golang代码&…

在嵌入式板子上搭建和自定义live555服务器---编译问题和方法整理

live555 官方网站 点我直达,live555是一个简单的专注于实现RTSP服务器的开源库。它自带解析H264 H265 mp3等源的API,有一个简单的推流文件参考RTSP服务器例程testH264VideoStreamer也有官方实现的LIVE555 Media Server。无论是命令行使用还是用API实现定…

【最新华为OD机试E卷-支持在线评测】分糖果(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

pyautogui进行点击失效,pyautogui.click()失效

背景:在Pycharm里,使用pythonpyautogui调用 .exe程序文件时候,当程序界面出来之后,鼠标失去反应,用pyautogui进行点击。后面尝试使用图片相似也无法实行点击。 解决方法:运行Pycharm或者其他ide的时候选择…

鸿蒙(API 12 Beta6版)超帧功能开发【顶点标记】

超帧提供两种运动估计模式供开发者选择:分别为基础模式和增强模式。其中增强模式需要对绘制顶点的Draw Call命令进行额外的标记,在相机和物体快速运动的游戏场景超帧效果较基础模式更优,能够有效改善拖影问题。本章主要介绍增强模式的运动估计…

【VB6|第27期】如何在VB6中使用Shell函数实现同步执行

日期:2024年9月1日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xff…

算法打卡——田忌赛马问题

问题简介&#xff1a;就是一个贪心的思想&#xff0c;下面上题目 要求示例输出输入 大体上先比较快马&#xff0c;田的快马与王的快马 其次比较田的慢马与王的慢马&#xff0c; 两处边界比较完全之后可以直接贪心了 几份示例的代码 代码一 #include <bits/stdc.h> …

【数据结构-二维前缀和】力扣1504. 统计全 1 子矩形

给你一个 m x n 的二进制矩阵 mat &#xff0c;请你返回有多少个 子矩形 的元素全部都是 1 。 示例 1&#xff1a; 输入&#xff1a;mat [[1,0,1],[1,1,0],[1,1,0]] 输出&#xff1a;13 解释&#xff1a; 有 6 个 1x1 的矩形。 有 2 个 1x2 的矩形。 有 3 个 2x1 的矩形。 有…

ia复习笔记

HCIA 常用配置以及快捷键&#xff1a;! 查看时间&#xff1a;display clock&#xff1b;修改时间&#xff1a;clock datetime 11:11:11 2023-1-1 查看设备当前的配置&#xff1a;display current-configuration&#xff1b;查看已保存的配置&#xff1a;display saved-config…

水晶连连看 - 无限版软件操作说明书

水晶连连看 – 无限版游戏软件使用说明书 文章目录 水晶连连看 – 无限版游戏软件使用说明书1 引言1.1 编写目的1.2 项目名称1.3 项目背景1.4 项目开发环境 2 概述2.1 目标2.2 功能2.3 性能 3 运行环境3.1 硬件3.2 软件 4 使用说明4.1 游戏开始界面4.2 游戏设定4.2.1 游戏帮助4…

docker拉取redis5.0.5并建立redis集群

1.配置文件 mkdir -p redis-cluster/7001/ mkdir -p redis-cluster/7002/ mkdir -p redis-cluster/7003/ mkdir -p redis-cluster/7004/ mkdir -p redis-cluster/7005/ mkdir -p redis-cluster/7006/cd redis-clustervim 7001/redis.confbind 0.0.0.0port 7001cluster-enabled…

传统CV算法——图像特征算法概述

文章目录 传统CV——图像特征算法概述1. 概述1.1 图像特征概述1. 2 局部特征1.2.1 定义1.2.2 特点1.2.3 常见方法1.2.4 应用 1.3 全局特征1.3.1 定义1.3.2 特点1.3.3 常见方法1.3.4 应用 1.4 局部特征与全局特征的比较1.5 局部特征点1.5.1 斑点与角点 1. 定义2. 特征3. 应用4. …

批量处理PDF神器:快速转换、压缩,提升工作效率

现在PDF格式的文件流通率越来越高了&#xff0c;因为它可以完整的保存文档原有的格式而被大家所使用。但是这个格式的文档编辑对很多人来说还比较陌生。这次我介绍几款pdf软件让你实现轻松编辑。 1.福昕PDF编辑器 链接一下>>https://editor.foxitsoftware.cn 这家公司…

Dance with Compiler - EP2

今天来熟悉汇编指令。 基本指令特点 str: store value to memory ldr: load value from memory stp: store register value to stack ldp: load stack value to register 更新寄存器的操作&#xff0c;一般结果寄存器是左操作数。 写内存的操作&#xff08;str&#xff09;&…

不同工况下的迁移轴承故障诊断,融合SE注意力机制的Resnet18迁移学习,附MATLAB代码...

概要 迁移学习&#xff08;Transfer Learning&#xff09;是一种在机器学习中广泛应用的技术&#xff0c;它利用在一个任务上获得的知识来帮助解决另一个相关任务。迁移学习尤其适用于数据量有限或训练成本较高的情况。它可以显著提高模型的性能和训练效率。 本期采用MATLAB语…

新材料 金属3D打印发展的加速器

在金属3D打印的广阔舞台上&#xff0c;材料性能犹如舞台的台柱&#xff0c;直接决定了打印工件性能的优劣。从强度、硬度到耐腐蚀性、抛光性及导热性&#xff0c;每一项指标都紧密关联着材料的选择&#xff0c;而优质材料正是推动这项技术跨越边界、深入更多行业领域的核心动力…

一个vue重新回顾,好多年前写的

在校期间简单跟着视频学习的代码&#xff0c;后面上传到github仓库就一直没有使用了&#xff0c;今天重新加载&#xff0c;重新启动。下面是启动时候遇到的问题&#xff0c;主要原因是我这部电脑是新电脑&#xff0c;很多环境还没有搭建。 成功启动后的页面效果 这里采用的思…

oauth2 方式获取outlook邮箱收件箱(python)

1.在Azure 门户注册应用程序 微软文档地址 重定向的地址配置(微软地址)&#xff1a; https://login.microsoftonline.com/common/oauth2/nativeclient 注册应用地址 2.程序代码 #安装包以及需要的驱动 pip3 install playwrightplaywright install import base64 import jso…

服务器模型 Reactor 和 Proactor

Proactor 具体流程如下&#xff1a; 处理器发起异步操作&#xff0c;并关注 IO 完成事件&#xff1b;事件分离器等待操作完成事件&#xff1b;分离器等待过程中&#xff0c;内核并行执行实际的 IO 操作&#xff0c;并将结果存储入用户自定义的缓冲区&#xff0c;最后通知事件分…