当前位置: 首页 > news >正文

云计算之大数据(下)

目录

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 陕西农信银行合规知识竞赛活动方案
  • STM32 HAL freertos零基础(一)-任务创建
  • 算法-双指针技巧
  • 搭建Kafka+zookeeper集群调度
  • 运营如何判断账号是否起号失败?
  • Bev pool 加速(1): torch.autograd.Function的使用
  • 从C到C++
  • 微信小程序-文件下载
  • 体系结构权衡分析方法(ATAM)
  • 基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
  • 键盘快捷键:提高工作效率与电脑操作的利器
  • IIS 反向代理模块: URL Rewrite 和 Application Request Routing (ARR)
  • SparkSQL SET和RESET
  • Spring boot启动过程详解
  • 形象化理解pytorch中的tensor.scatter操作
  • 3.7、@ResponseBody 和 @RestController
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CAP 一致性协议及应用解析
  • HTTP 简介
  • python 装饰器(一)
  • Vue官网教程学习过程中值得记录的一些事情
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于HAProxy的高性能缓存服务器nuster
  • 树莓派 - 使用须知
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #if #elif #endif
  • #stm32驱动外设模块总结w5500模块
  • (¥1011)-(一千零一拾一元整)输出
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (LLM) 很笨
  • (二)斐波那契Fabonacci函数
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (一)Neo4j下载安装以及初次使用
  • (转)Windows2003安全设置/维护
  • (转)甲方乙方——赵民谈找工作
  • (转载)OpenStack Hacker养成指南
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [Apio2012]dispatching 左偏树
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [BT]BUUCTF刷题第8天(3.26)
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意