【视频】云原生数据仓库 Analyticdb MYSQL 版-解析与实践-3|学习笔记(一)

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 快速学习【视频】云原生数据仓库 Analyticdb MYSQL 版-解析与实践-3

开发者学堂课程【数据仓库 ACP 认证课程【视频】云原生数据仓库 Analyticdb MYSQL 版-解析与实践-3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/928/detail/14625


【视频】云原生数据仓库 Analyticdb MYSQL 版-解析与实践-3

 

前言

上节课介绍云原生数据仓库analyticDB MySQL版的一些基本概念、操作等基础之上,本节课进行继续介绍。

 

内容介绍

一、数据导入导出与同步链路搭建

二、SQL优化与慢查询解决

三、数据更新

四、演示

五、试题

六、回顾与总结

 

一、数据导入导出与同步链路搭建

1. 导入方案

众所周知,Ananylyticdb mySQ不生产数据,其数据大多数来自业务数据库及生产数据库,通过ETL过程导入到数据中,所以数据的导入导出是数据库的一项最基本的功能。同时针对阿里云的系列产品,可以通过数据传入服务来实现同步链路搭建。

Ananylyticdb mySQL版提供多种导入方案,可满足不同场景下的数据导入需求

数据库

RDS MYSQL ;POLAR DB-X (原DRDS);POLARDB MYSQL ;ORACE ;SQL SERVER

Oss

INSERT外表;通过外表导入oss数据

Dataworks数据工厂:配置oss数据源

大数据

Max computer

INSERT外表;通过INSERT外表方式导入MAx compute数据

Dataworks:配置max computer数据源

Hadoop:flink

消息队列 kafka

使用logstash插件:使用logstash将kafka数据写入analyticdbmySQL

Dataworks:配置Kafka读取

日志类数据

SLS;将SLS数据投递到analyticdb  MYSQL

Dataworks 配置sls读取

日志数据使用logstash插件:使用实时采集日志数据

本地数据

Load DATA 使用LOAD DATA导入不同场景下的数据导入需求

Dataworks:现将数据导入oss或FTP,在使用oss读取或者FTP读取的方式导入

导入工具:使用AnalyticDBmyqsl版导入工具导入本地数据

其中:

Dataworks是阿里云当中非常重要的一个数据加工工具,通过它,可以开发设计应用一系列的数据处理工具。

大数据Max computer,也是阿里云当中针对更大数据集的批量处理的一个产品。

2. DML 本地数据导入

步骤

1. 本地客户端

配置my.cnf配置文件,开启local-file功能(可以读取本地文件)

2. AnalyticDBmyqsl创建目标表(也就是导入的数据能够放置到哪个表内)

3. DML命令导入

以下是LOAD DATA的代码(其中有些是非必须的)

LOAD DATA LOC AL

INFLE “FILE-name’//对应的文件名从那个文件导入数据

【REPLACE\IGNROE]

INTO TABLE TABLE-NAMES//作为创建的目标表

【{FELDS\COLUMNS]

【terminated / BY‘ string’】

//需要制定数列中的分隔符,比如逗号,竖杠等等

{(opTIDNART } ENCLOSED BY CHAR}}

【lines}

【terminated / BY STRING】

{,column-name-or- user-war }...0】

通过LOAD 实现本地数据的导入

3. DML 外表式数据导入导出

image.png(1)说明讲解

通过AnalyticDB MySQL映射表进行数据导入导出操作。支持oss、 mysol 、max compute,所有外表为映射表,创建在analyticdb数据库中,所有外表指向数据源。

说明:

通过RDS进行产品数据的导入时,RDSMySQL与AnalyticDB必须在同一个vpc下,此时ADB可以通过VPC的支持访问MySQL也可以是ECS自建MySQL ,此外OSS与AnalyticDB所属区域必须相同。

(2)通过DML外表是数据导入导出-创建外部表:

①首先在AnalyticDB MySQL中创建adb-demo数据库,并在数据库中创建一个外部映射表,简称外表courses-extenal-table,表的名字根据自己的业务需求创建。

CREATE TABLE IF NOT EXISTS courses-extenal-table

//如果表格不存在,就创建表

Id bigint not null

Name varchar (32)NOT NULL

Grade varchar (32)NOT NULL

Sumbmission-date TIMESTEAMP NOT NULL

ENGINE=’mysql’

TABLE_PROPERTIES=’{

“url”:“jdbc:mysql://mysql-vpc-address:3306/test_adb”

“tablename”:”courses”,

“username”:”mysql-user-name”

“password”:”mysql-user-password”

}’

//表的主键为id

②参数说明:

ENGINE=’MYSQL’

——表示该表是外部表,使用存储引擎为MySQL

若是创建普通表和维表是直接在 mysql创建,不包含ENGINE=格式

TABLE_PROPERTIES

——用于告知AnalyticDB如何访问mysql中的数据

通过该语句即可访问到所需外部数据

Url

——mysql中的内网地址,即VPC链接地址,地址格式为:

“jdbc:mysql://mysql-vpc-address:3306/test_adb”

tablename所需要的表,

username&password

——mysql中访问数据库的用户名和密码

如果有开发的经验只需访问MySQL即可访问到对应的数据库

(3)DML外表使数据导入导出MySQL

通过AnalyticDB MySQL映射表进行数据导入导出操作。

导入实际案例,完成该过程需要三个步骤:

image.png①前提准备:首先做好准备工作,完成实例的创建,设置白名单、创建账号和数据库、创建表。示例:分别在两个数据库中创建表,导入导出数据的表。

首先,先在ids创建一张表,

CREATE TABLE rds courses{

Id bigint NOT NULL,

Name varchar(32)NOT NULL,

PRIMARY KEY(id)

然后在adb当中也创建一张表,

CREATE TABLE adb courses{

Id bigint AUTO INCREMENT,

Name varchar NOT NULL,

}DISTRIBUTE BY HASH(ID)}

前提:已经完成集群、实例的创建,设置白名单、创建账号和数据库。

之后登录AnalyticDB mySQL 创建需导入导出数据的表的映射表

创建一张表与上述两张表结构相同,表中存在引擎的说明

ENGINE “mysql”访问表的名称

“url”“:”Jdbc,mysql://mysql.Vpc.address:3306/xxx-db”

以及相关计算引擎的信息,对应的数据库的那张表,对应的用户名,密码。代码如下:

CREATA TABLE IF NOT EXISTS courses_external_table(

Id bigint NOT NULL,

Name varchar(32)NOT NULL,

PRIMARY KEY(id)

ENGINE=’mysql’

TABLE_PROPERTIES=’{

“url”:“jdbc:mysql://mysql-vpc-address:3306/test_adb”

“tablename”:”courses”,

“username”:”mysql-user-name”

“password”:”mysql-user-password”

}’

根据这些信息,保证我们可以访问到对应表中对应数据的信息。

外部表创建完成后,通过insert into语句实现数据的导入导出

存在两条insert into语句,注意语句表的名称。

insert into courses-external-table

Select*from adb-courses,-AnyalyticDB导入到Rds

从adb中取得数据,添加到外物表中,对于AnyalyticDB而言实现数据导出的功能AnyalyticDB导出到rds中

如果向实现rds导入到AnyalyticDB,则更换语句

insert into  adb-courses

Select*from  courses-external-table

即可实现rds导入到AnyalyticDB

4. DML 外表式数据导入导出-Maxcomputer

image.png步骤:

(1)首先确定目标和源表

Maxcompute:数据表

AnalyticDB:数据表

AnyalyticDB和maxcomputer 两者之间的数据的导入导出

(2)创建映射表

AnalyticDB中创建该数据表的映射表

(3)DML命令导出

通过INSERT INTO或者INSERT overwrite来实现数据的导入

Maxcomputer是阿里云产品中的一款大数据计算产品,支持海量数据的批处理计算

参数定义

ENGINE=”ODPS” 存储引擎为odps

ENGINE= ’ODPS’---储存引擎是 MaxCompute


TABLE_PROPERTIES=’{

“endpoint" :"http://service.cn.maxcompute.aliyun-inc.com/api",


---MaxCompute的EndPoint (域名节点)


“accessid”: "LTAIF*****5FsE・,


---访问 MaxCompute的AccessKey ID


“AccessKey”:“Ccw****iWjv*“,


---对应的ID 的Access key Secret


“project_name”"odps-project1”,


---MaxCompute中的工作空间名称


“table_name”: *xxxx_xxxx"


---MaxCompute中的数据表名称

说明:目前仅支持analyticDB MYSQL 通过maxcomputer的vpc网络endpoint访问maxcomputer

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
4月前
|
SQL 分布式计算 DataWorks
破界·融合·进化:解码DataWorks与Hologres的湖仓一体实践
基于阿里云DataWorks与实时数仓Hologres,提供统一的大数据开发治理平台与全链路实时分析能力。DataWorks支持多行业数据集成与管理,Hologres实现海量数据的实时写入与高性能查询分析,二者深度融合,助力企业构建高效、实时的数据驱动决策体系,加速数字化升级。
|
7月前
|
存储 监控 数据挖掘
京东物流基于Flink & StarRocks的湖仓建设实践
本文整理自京东物流高级数据开发工程师梁宝彬在Flink Forward Asia 2024的分享,聚焦实时湖仓的探索与建设、应用实践、问题思考及未来展望。内容涵盖京东物流通过Flink和Paimon等技术构建实时湖仓体系的过程,解决复杂业务场景下的数据分析挑战,如多维OLAP分析、大屏监控等。同时,文章详细介绍了基于StarRocks的湖仓一体方案,优化存储成本并提升查询效率,以及存算分离的应用实践。最后,对未来数据服务的发展方向进行了展望,计划推广长周期数据存储服务和原生数据湖建设,进一步提升数据分析能力。
740 1
京东物流基于Flink & StarRocks的湖仓建设实践
|
7月前
|
存储 SQL 运维
中国联通网络资源湖仓一体应用实践
本文分享了中国联通技术专家李晓昱在Flink Forward Asia 2024上的演讲,介绍如何借助Flink+Paimon湖仓一体架构解决传统数仓处理百亿级数据的瓶颈。内容涵盖网络资源中心概况、现有挑战、新架构设计及实施效果。新方案实现了数据一致性100%,同步延迟从3小时降至3分钟,存储成本降低50%,为通信行业提供了高效的数据管理范例。未来将深化流式数仓与智能运维融合,推动数字化升级。
333 0
中国联通网络资源湖仓一体应用实践
|
3月前
|
SQL 存储 运维
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
本文介绍了 Apache Doris 在菜鸟的大规模落地的实践经验,菜鸟为什么选择 Doris,以及 Doris 如何在菜鸟从 0 开始,一步步的验证、落地,到如今上万核的规模,服务于各个业务线,Doris 已然成为菜鸟 OLAP 数据分析的最优选型。
292 2
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
|
7月前
|
存储 消息中间件 分布式计算
Hologres实时数仓在B站游戏的建设与实践
本文介绍了B站游戏业务中实时数据仓库的构建与优化过程。为满足日益增长的数据实时性需求,采用了Hologres作为核心组件优化传统Lambda架构,实现了存储层面的流批一体化及离线-实时数据的无缝衔接。文章详细描述了架构选型、分层设计(ODS、DWD、DIM、ADS)及关键技术挑战的解决方法,如高QPS点查、数据乱序重写等。目前,该实时数仓已广泛应用于运营分析、广告投放等多个场景,并计划进一步完善实时指标体系、扩展明细层应用及研发数据实时解析能力。
Hologres实时数仓在B站游戏的建设与实践
|
8月前
|
存储 分布式计算 MaxCompute
Hologres实时湖仓能力入门实践
本文由武润雪(栩染)撰写,介绍Hologres 3.0版本作为一体化实时湖仓平台的升级特性。其核心能力包括湖仓存储一体、多模式计算一体、分析服务一体及Data+AI一体,极大提升数据开发效率。文章详细解析了两种湖仓架构:MaxCompute + Hologres实现离线实时一体化,以及Hologres + DLF + OSS构建开放湖仓架构,并深入探讨元数据抽象、权限互通等重点功能,同时提供具体使用说明与Demo演示。
|
3月前
|
存储 SQL 关系型数据库
MySQL中binlog、redolog与undolog的不同之处解析
每个都扮演回答回溯与错误修正机构角色: BinLog像历史记载员详细记载每件大大小小事件; RedoLog则像紧急救援队伍遇见突發情況追踪最后活动轨迹尽力补救; UndoLog就类似时间机器可倒带历史让一切归位原始样貌同时兼具平行宇宙观察能让多人同时看见各自期望看见历程而互不干扰.
223 9
|
4月前
|
存储 SQL 关系型数据库
MySQL 核心知识与索引优化全解析
本文系统梳理了 MySQL 的核心知识与索引优化策略。在基础概念部分,阐述了 char 与 varchar 在存储方式和性能上的差异,以及事务的 ACID 特性、并发事务问题及对应的隔离级别(MySQL 默认 REPEATABLE READ)。 索引基础部分,详解了 InnoDB 默认的 B+tree 索引结构(多路平衡树、叶子节点存数据、双向链表支持区间查询),区分了聚簇索引(数据与索引共存,唯一)和二级索引(数据与索引分离,多个),解释了回表查询的概念及优化方法,并分析了 B+tree 作为索引结构的优势(树高低、效率稳、支持区间查询)。 索引优化部分,列出了索引创建的六大原则
133 2

推荐镜像

更多