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

简介: 前言大数据计算服务 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)。这为后续更为便捷的数据分析、数据计算操作提供了可能性。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
934 17
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
3558 26
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
1550 12
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
1032 4
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
575 3
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
2945 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
1785 0

推荐镜像

更多