基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-数据处理ETL篇

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 前言大数据计算服务 MaxCompute(原名 ODPS)是一种快速、完全托管的EB级数据仓库解决方案。随着数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(TB、PB、EB)级别。MaxCompute 致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。它具有大规模计算存储、多种计算模型、强数据安全、低成本、免运维、极致弹性扩展的优

前言

大数据计算服务 MaxCompute(原名 ODPS)是一种快速、完全托管的EB级数据仓库解决方案。随着数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(TB、PB、EB)级别。MaxCompute 致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。它具有大规模计算存储、多种计算模型、强数据安全、低成本、免运维、极致弹性扩展的优势。

可以将 Tablestore 中的数据于 MaxCompute 进行对接,后续,利用 MaxCompute 强大的计算能力,对数据进行进一步的消费和计算。

下面,本文将逐步说明如何将 Tablestore 中的数据导入 MaxCompute 中。

准备工作

需要开通MaxCompute服务,并创建工作空间

这里创建的工作空间命名为 test_tablestore_odps。

数据导入

我们将订单系统中的 order_contract 表同步至 MaxCompute。MaxCompute 提供了多种方式读取 tablestore 中的数据,这里我们采用先构建外部表,然后再通过 SQL 根据外部表创建内部表进而投递数据。

创建外部表

以管理员身份登录 DataWorks控制台选择区域,在左侧导航栏,单击工作空间列表

点击工作空间“test_tablestore_odps”右侧的进入数据开发

在临时查询下新建节点选择 ODPS SQL。

输入节点名称,点击提交。

在页面中输入建外表语句:

CREATE EXTERNAL TABLE IF NOT EXISTS order_max_compute
(
odps_id string,
create_time string,
pay_time bigint,
has_paid bigint,
c_id string,
c_name string,
p_brand string,
p_count bigint,
p_id string,
p_name string,
p_price double,
s_id string,
s_name string,
total_price double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler'
WITH SERDEPROPERTIES (
'tablestore.columns.mapping'=':oId,create_time,pay_time,has_paid,c_id,c_name,p_brand,p_count,p_id,p_name,p_price,s_id,s_name,total_price',
'tablestore.table.name'='order_contract',
'odps.properties.rolearn'='acs:ram::1831126559450753:role/aliyunodpsdefaultrole'
)
LOCATION 'tablestore://test-20210609.cn-hangzhou.ots-internal.aliyuncs.com';

其中 LOCATION 填入 Tablestore 经典网地址。odps.properties.rolearn 填入 RAM 中 AliyunODPSDefaultRole 的 ARN 信息。具体可参考:OTS外部表。点击运行按钮,完成外表创建。

查看外部表

在临时查询的 SQL 窗口中输入

select * from order_max_compute limit 10000

可以看到查询结果

创建内部表

创建外部表后,Tablestore的数据便引入到了 MaxCompute 生态中。但此时只是通过映射关系读取数据,数据还未存储在 MaxCompute 中。因此如果有需求需要反复读取数据,将相比每次从 Tablestore 去远程读数据,更高效的方法是先一次性把需要的数据导入到 MaxCompute 内部成为一个 MaxCompute(内部)表。可以利用外部表和 SQL 直接实现该需求。执行如下 SQL 建立内部表。

CREATE TABLE order_max_compute_internal AS
SELECT * FROM order_max_compute;

查看内部表

在 DataWorks管理控制台首页,点击工作空间列表,点击对应工作空间进入数据地图。点击我的数据,在列表中可以看到 MaxCompute 中的 order_max_computer_internal 表,点击进入。

点击数据预览,可以看到导入的数据。

总结

本文展示了如何将 Tablestore 中的数据导入到 MaxCompute(ODPS)。这为后续更为便捷的数据分析、数据计算操作提供了可能性。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
122 3
Mysql高可用架构方案
|
2月前
|
人工智能 前端开发 JavaScript
前端架构思考 :专注于多框架的并存可能并不是唯一的方向 — 探讨大模型时代前端的分层式微前端架构
随着前端技术的发展,微前端架构成为应对复杂大型应用的流行方案,允许多个团队使用不同技术栈并将其模块化集成。然而,这种设计在高交互性需求的应用中存在局限,如音视频处理、AI集成等。本文探讨了传统微前端架构的不足,并提出了一种新的分层式微前端架构,通过展示层与业务层的分离及基于功能的横向拆分,以更好地适应现代前端需求。
|
27天前
|
SQL 存储 缓存
【赵渝强老师】MySQL的体系架构
本文介绍了MySQL的体系架构,包括Server层的7个主要组件(Connectors、Connection Pool、Management Service & Utilities、SQL Interface、Parser、Optimizer、Query Caches & Buffers)及其作用,以及存储引擎层的支持情况,重点介绍了InnoDB存储引擎。文中还提供了相关图片和视频讲解。
【赵渝强老师】MySQL的体系架构
|
7天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
27天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
56 3
|
26天前
|
存储 监控 关系型数据库
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
34 1
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:百万级数据统计优化实践
【10月更文挑战第21天】 在处理大规模数据集时,传统的单体数据库解决方案往往力不从心。MySQL和Redis的组合提供了一种高效的解决方案,通过将数据库操作与高速缓存相结合,可以显著提升数据处理的性能。本文将分享一次实际的优化案例,探讨如何利用MySQL和Redis共同实现百万级数据统计的优化。
94 9
|
2月前
|
JSON 前端开发 Java
Spring Boot框架中的响应与分层解耦架构
在Spring Boot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。
56 3
|
存储 索引
表格存储根据多元索引查询条件直接更新数据
表格存储是否可以根据多元索引查询条件直接更新数据?
114 3
|
5月前
|
DataWorks NoSQL 关系型数据库
DataWorks产品使用合集之如何从Tablestore同步数据到MySQL
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。