基于 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
目录
相关文章
|
17天前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
85 3
Mysql高可用架构方案
|
1月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
123 1
|
2月前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
12天前
|
SQL 存储 缓存
【赵渝强老师】MySQL的体系架构
本文介绍了MySQL的体系架构,包括Server层的7个主要组件(Connectors、Connection Pool、Management Service & Utilities、SQL Interface、Parser、Optimizer、Query Caches & Buffers)及其作用,以及存储引擎层的支持情况,重点介绍了InnoDB存储引擎。文中还提供了相关图片和视频讲解。
【赵渝强老师】MySQL的体系架构
|
1月前
|
存储 监控 分布式数据库
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
本文介绍了百亿级数据存储架构的设计与实现,重点探讨了ElasticSearch和HBase的结合使用。通过ElasticSearch实现快速检索,HBase实现海量数据存储,解决了大规模数据的高效存储与查询问题。文章详细讲解了数据统一接入、元数据管理、数据一致性及平台监控等关键模块的设计思路和技术细节,帮助读者理解和掌握构建高性能数据存储系统的方法。
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
|
11天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
26 1
|
13天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
29 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
63 3
Mysql(4)—数据库索引
|
20天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
97 1
|
22天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
65 2
下一篇
无影云桌面