背景
记得几年前从学校毕业来 OceanBase 的时候,OceanBase 已经支撑了好几年淘宝和支付宝的双十一,正准备开始做商业化。当时商业化过程中一个非常迫切的外部用户需求,就是数据的导入导出。
在我入职时,带我的师兄刚好就正在调研和准备实现 select into & load data 功能。不久之后,我所在的那个小组就为 OceanBase 数据库内核支持了 select into & load data 功能,当时在用户中的口碑也远超 OceanBase 工具团队和蚂蚁集团 DBA 团队开发的各种导入导出工具。
因为这是 OceanBase 内核自带的功能,无需额外维护更多工具,并且易用性也足够好,所以在这期课程里推荐给大家!
(真怀念那个无论给团队挖了多少天坑,都有大神师兄在身边保驾护航的年代~)
边学边练,效果拔群
正所谓 “纸上得来终觉浅,实践才能出真知”,强烈推荐大家点击下面的链接,根据在线体验页面左边的实验文档,亲手体验一把通过 select into && load data 进行数据导入导出的易用性。
-
在线实验地址:《使用 SELECT INTO 和 LOAD DATA 进行数据导出导入》。
-
因为 select into 和 load data 的执行计划非常简单,所以大家可以实验中 “步骤三:导出数据” 这里,通过 explain 看一下实验中这张非分区表 tbl 加或者不加 hint /*+ parallel(n) */ 时,执行计划会有哪些变化?再研究下为什么?
explain basic SELECT * INTO OUTFILE '/home/admin/tb1.csv' FIELDS TERMINATED BY ',' FROM tbl1; explain basic SELECT /*+ PARALLEL(2) */ * INTO OUTFILE '/home/admin/tb1.csv' FIELDS TERMINATED BY ',' FROM tbl1;
-
大家还可以顺带研究下:
- 计划中的 EXCHANGE OUT / EXCHANGE IN 算子分别是在干什么(PX CODRDINATOR 是一种特殊的 EX IN 算子)?
- 实验中这张叫做 ORDER 的分区表加或者不加 hint /*+ parallel(n) */ 时,执行计划会有哪些变化?为什么?
- 计划中的 PX BLOCK ITERATOR 和 PX PARTITION ITERATOR 算子分别是干什么用的?有什么区别?
- ……
一个小提示:如果大家想了解这些问题,可以参考以下资料:
- OceanBase 社区博客《OceanBase 并行执行学习笔记 1 —— 并行执行概念》
- OceanBase 入门教程《阅读和管理 OceanBase 数据库 SQL 执行计划》
另一个小提示:
- 需要先登录 OceanBase 账号,才能初始化屏幕右边的实验环境进行实验。
- 在实验环境里,干什么都可以。大家不要受限于屏幕左边的实验手册,可以天马行空地做一些你感兴趣的事情,或者验证一些你对 OceanBase 官网文档的疑问、以及自己的猜想等等(甚至可以尝试怎么搞能把这个实验环境里的 OBServer 给弄崩)。
- 欢迎大家平时在学习 OceanBase 的过程中,也都能充分利用在线体验页面为您提供的一些实验环境,来体验 OceanBase 中您感兴趣的新特性。
-
-
课后小测地址:【DBA 实战营】通过 select into & load data 进行数据导入导出。
-
大家完成课后小测,并在小测中上传实验截图,判卷通过后就会自动获取 10 积分,并自动获得抽奖资格,有机会获得实体礼物或更高额的积分奖励。
-