云计算百科
云计算领域专业知识百科平台

阿里云ACP认证-数据仓库

数据仓库

Kappa架构:将实时和离线代码统一(优化lambda架构),但是不好修正数据,开发周期长,成本浪费,对于历史数据的高吞吐量力不从心 原一代数据仓库:

  • 离线:hive+maxcompute
  • 实时:clickhouse+driud
  • 整合离线和实时:drill+presto
  • 保存:mysql+redis
  • 最后API

下一代:

  • 要实时,很实时
  • 离线和实时一体化,减少数据移动
  • 通用性,要解耦
  • 云原生,标准且生态
特点数据库缺点
支持事务+ACID Mysql+presetSQL 弹性伸缩难做到PD级别,且不能做复杂查询
分析加速,分布式 presto+druid+hive+clickhouse… 面向分析师
面向服务产品,高并发,查询简单 hbase+redis+casandra

既可以支持分析也可以支持事务:HTAP混合事务分析系统

  • 需要事务机制保证ACID + 适合模型简单,简单分析场景,TP解决AP问题

既可以分析也可以服务:HSAP服务/分析一体化:Hologres

  • 无事务开销(分布式锁、同步)
  • 以数据仓库模型(抽象、服用、标准)解决数据服务问题

下一代架构

Hologres

产品特性:

  • 分析服务一体化:point(点查询hbase/redis遇到的) /Ad-hoc(即席分析clickhouse)/OLAP(联机分析) 分析
  • 以实时为中心:很快,数据实时写入和更新,与Flink原生集成,写入即可见
  • 计算存储分离:存储资源和计算资源分离部署并独立扩展+和Maxcompute无缝打通
  • 开放生态:兼容PF生态+对接PG开发工具+对接BI

Flink+hologres组合:实时大屏等 在这里插入图片描述 hologres:报表等离线加速 在这里插入图片描述

Flink+hologres+maxcompute:数据中台+精准营销+多维分析 在这里插入图片描述

Hologres架构原理

计算和存储相分离 逻辑架构图 计算:

  • 接入节点Frontend(FE):SQL认证解析和优化,可以包含多个,兼容postgres11
  • worker:执行引擎HQE(hologres query engine,极致查询)/PQE(postgres query engine,兼容postgres)/SQE(对接maxcompute,本地兼容访问maxcompute)+存储引擎(SH,shard,CURD)+缓存+调度(HOS轻量级)
  • MetraService(管理元数据信息,同时提供给FE)+Holo Master(拉起Worker)

存储:

  • 盘古文件系统
  • 数据湖

SQL发送请求-frontend解析分发-worker执行-走不同路径-SE存储获取数据,合并后返回给FE (点查直接搜Fixed FE) 在这里插入图片描述

HSAP挑战和Hologres应对策略 特点

存储计算分离:三种 存储使用盘古 hologres存储 流批统一:底层支持行(PK)、列(OLAP)、行列共存 在这里插入图片描述 执行引擎+优化器 在这里插入图片描述 名词解释: 在这里插入图片描述

hologres开发工具: 在这里插入图片描述

PSQL客户端 在这里插入图片描述 JDBC连接hologres 在这里插入图片描述

数据同步

支持多种异构数据源的离线、实时写入 在这里插入图片描述

实时写入数据到hologres 进入hologres控制台–建库建表(1)-进入实时计算Flink控制台-作业开发-新建作业-创建原表和目标表(2)-执行-上线-运维-进入作业运维可以看到提交的作业-启动作业即可-在holoweb控制台查看是否成功(3) (1)create table if not exists test1(a int ,b bigint ,c text,d timestamp); (2_1)create temporary table datagen_source(a int ,b bigint,c string,proctime as proctime()) with ('connector'='datagen')flink随机源 (2_2)create temporary table holo_sink(a int,b bigint,c varchar,d timestamp) with ('connector'='hologres','endpoint'='XXX(hologres实例列表控制台查看)','username'='XX','password'='XX','dbname'='XX','tablename'='test1(上面建的表)')holo目标表 (2_3)insert into holo_sink select * from datagen_source;数据实时写入目标表 (3)select * from test1 order by d limit 2;/select count(1) from test1; 在这里插入图片描述

Maxcompute离线加速查询

单表创建/批量外表创建 在这里插入图片描述 dataworks控制台

  • 数据开发
  • 临时查询-新建数据源
  • 创建表并插入数据

create table if not exists odps_test(
shop_name string,
customer_id string,
total_price int
)
partitioned by (
sale_date string
)
#插入数据
insert into odps_test partition(sale_date='20221111') values('a','张三',50),('b','李四',55);

# 查看数据
read odps_test;

  • 创建holoweb外部表(元数据管理可视化创建/sql创建)

create foreign table t_odps(
shop_name text,
customer_id text,
total_price int8,
sale_date text
)
server odps_server
options(project_name 'XXX项目空间名',table_name 'odps_test');

# 验证是否创建,相应会很快,dataworks慢,hologres加速查询!
select * from t_odps;

  • 外表完成加速查询完成

COPY命令导入导出数据

在这里插入图片描述 在psql里面,连接后测试copy命令

#\\d查看数据表
#建表
create table copy_test(
id int,
age int,
name text
);
# 从控制台(stdin)输入数据并复制到表
copy copy_test from stdin with delimiter as ',' null as '';
# 验证
select * from copy_test;

#从txt文件导入数据
cmd
psql U XXX p 80 h XX d X数据库名X c "copy copy_test from stdin with delimiter ','; " < X文件路径X

#COPY N,代表写入了多少条数据

# 下载数据到本地
psql
\\copy (select * from copy_test) to '本地路径/写入OSS';

#下载数据到OSS
psql/HoloWEB SQL编辑器
\\copy (select * copy_test limit 2) to program '
hg_dump_to_odd
–AccessKeyId XX
–AccessKeySecret XX
–BucketName XX
–DirName X路径X
–FileName X文件名X
–BatchSize X多少记录X
'

# 最后到OSS查看验证即可

Hologres数据开发

数据类型:

数据类型 Maxcompute与Hologres数据类型映射: 数据类型映射 Flink与Hologres数据类型映射:

Flink和Hologres数据类型映射

PG参考文档-函数

Hologres扩展函数 扩展函数 DDL(表操作)和DML、DQL(表数据操作) 在这里插入图片描述 Hologres建表语法:(和PG一致,但是表属性有差异(CALL set_table_property)) 建表 分区表

静态分区 只能向子表插入数据 attach:绑定父表 detach:解绑父表 分区表 动态分区

配置项含义
auto_partitioning.enable 开去动态分区(true/false)
auto_partitioning.time_unit 时间单位,小时、天DAY、月、季度、年:每小时第一秒/每天凌晨第一秒进行分区创建或删除
auto_partitioning.time_zone 时区(Asia/Shanghai)
auto_partitioning.num_precreate 创建分区数值(0-512,0表示不进行预创建,4代表创建4个)
auto_partitioning.num_retention 保留历史分区数量(0不保留,-1不清理,正数保留历史分区个数,不超过512)
keep_alive true/false:不删除过期数据/立即触发删除过期数据

自动创建删除分区 动态分区 外部表 外部表 视图操作 视图 插入insert操作: 插入 删除和更新操作 删除和更新 insert on conflict 插入数据的时候,主键有重复值,选择更新还是跳过 insert on conflict truncate清空目标表 countinue identity 加上代表继续排序,序号不清空

truncate

HologresSQL高阶语法

SQL-partition-Shard-Segment-Row-Block 在这里插入图片描述 在这里插入图片描述 存储属性 在这里插入图片描述 行存:主键点查询 列存:数据分析OLAP 行列共存:都有但存储开销大,也需要主键

分布键 分布 分段键 分段 聚簇索引 聚簇

字典编码 字典编码 位图索引 向量进行高效计算 在这里插入图片描述 生命周期 在这里插入图片描述

Binlog操作

在这里插入图片描述 binglog格式

格式 查询binlog 在这里插入图片描述

性能调优

在这里插入图片描述 更新统计信息 analyze 在这里插入图片描述 hologres数据存在盘古上面,一张表数据存储在固定一组表下,根据键分发在不同shard上面

shard

赞(0)
未经允许不得转载:网硕互联帮助中心 » 阿里云ACP认证-数据仓库
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!