作者:杨涛涛

资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

MySQL 8.0.22 在今年的 10 月 19 日发布,给我们带来很多非常实用的特性。特别是对 MySQL Shell 8.0.22 来说,UTIL 组件功能更多,更加丰富,使用更加简单。

比如今天我们来介绍 import_table(importTable) 的延申功能:可定制化行输入。

import_table(importTable) 我们之前有介绍过,是一款并行导入各种格式文本的工具,封装了 MySQL 语句 load data local infile。

比如说要导入一个以 TAB 为分隔符的文本数据文件:/tmp/sample_ytt.txt 到表:ytt_new.t1,可以执行下面语句:

上面结果是 load data infile 语句的导入结果。如果改用 import_table 方法来做同样的事情,基于 Python 语法,使用方法如下:

那接下来看另外一个需求:在导入文本文件时对每行做预处理(例如在导入数据之前更改列 r2 的值为 mod(r1,10),列 r5 的值为 abs(r4-46) ),这样可以减少导入后再次处理的时间开销。

这个需求用 load data infile 语句非常容易实现:(导入时更改列 r2 和 r5 的数据,类似 UPDATE 语法)

那如果要用 util.import_table(importTable) 来实现上面的需求,在 MySQL 8.0.22 之前是没办法的。

随着 MySQL 8.0.22 的发布,MySQL 对 import_table 方法做了些扩充功能,其中增加了一个选项 “decodeColumns” 可以实现字段的预先输入定制化功能,并且还可以更加丰富。

接下来用 import_table 来实现上面的需求,定制化字段 r2 和 r5:

以上 Options 选项,见下图:

我来具体解释下上图的含义:蓝色字体 columns 对应的数组分别指定数据文件中的每行字段,也就是默认的 TAB 分隔符所分割的每列值,1 和 2 代表占位符,1 代表数据文件中每行的第一个列,2 代表数据文件中每行的第四列,decodeColumns 字典分别对需要预先输入的字段做处理。比如 r1 字段保留为变量 @1,r2 字段对应 mod(r1,10) 等。

如果还是不太理解变换规则,可以临时打开 general log, 上面 import_table(importTable)对应的 MySQL 日志为:

以上日志写的很清楚,内部转换为最基本的 load data infile 语法。

那这里我简单解读了下 MySQL 8.0.22 对 MySQL Shell 的一项定制化输入文本文件的新特性,更多的新特性可以继续关注。

mysql8导入不同schme_新特性解读 | MySQL 8.0.22 任意格式数据导入相关推荐

  1. mysql8导入 psc 没有数据_新特性解读 | MySQL 8.0.22 任意格式数据导入

    作者:杨涛涛 资深数据库专家,专研 MySQL 十余年.擅长 MySQL.PostgreSQL.MongoDB 等开源数据库相关的备份恢复.SQL 调优.监控运维.高可用架构设计等.目前任职于爱可生, ...

  2. mysql failover_新特性解读 | MySQL 8.0.22 新特性 Async Replication Auto failover

    作者:洪斌 爱可生南区负责人兼技术服务总监,MySQL  ACE,擅长数据库架构规划.故障诊断.性能优化分析,实践经验丰富,帮助各行业客户解决 MySQL 技术问题,为金融.运营商.互联网等行业客户提 ...

  3. c语言 字符串 正序再倒序_新特性解读 | MySQL 8.0 索引特性3 -倒序索引

    原创作者:杨涛涛 我们今天来介绍下 MySQL 8.0 引入的新特性:倒序索引. MySQL长期以来对索引的建立只允许正向asc存储,就算建立了desc,也是忽略掉. 比如对于以下的查询,无法发挥索引 ...

  4. 中累计直方图_新特性解读 | MySQL 8.0 直方图

    原创作者:杨涛涛 MySQL 8.0 推出了histogram,也叫柱状图或者直方图.先来解释下什么叫直方图. 关于直方图 我们知道,在DB中,优化器负责将SQL转换为很多个不同的执行计划,完了从中选 ...

  5. 新特性解读 | MySQL 8.0 对 limit 的优化

    作者:杨奇龙 网名"北在南方",资深 DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优.故障诊断. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不 ...

  6. mysql 8函数索引_新特性解读 | MySQL 8.0 索引特性1-函数索引

    原创作者:杨涛涛 函数索引顾名思义就是加给字段加了函数的索引,这里的函数也可以是表达式.所以也叫表达式索引. MySQL 5.7 推出了虚拟列的功能,MySQL8.0的函数索引内部其实也是依据虚拟列来 ...

  7. mysql force index报错_新特性解读 | MySQL 8.0 索引特性4-不可见索引

    MySQL 8.0 实现了索引的隐藏属性.当然这个特性很多商业数据库早就有了,比如ORACLE,在11g中就实现了.我来介绍下这个小特性. 介绍 INVISIBLE INDEX,不可见索引或者叫隐藏索 ...

  8. 新特性解读 | MySQL 8.0 对 GTID 的限制解除

    作者:杨涛涛 资深数据库专家,专研 MySQL 十余年.擅长 MySQL.PostgreSQL.MongoDB 等开源数据库相关的备份恢复.SQL 调优.监控运维.高可用架构设计等.目前任职于爱可生, ...

  9. 新特性解读 | MySQL 8.0 新密码策略(上)

    作者:杨涛涛 资深数据库专家,专研 MySQL 十余年.擅长 MySQL.PostgreSQL.MongoDB 等开源数据库相关的备份恢复.SQL 调优.监控运维.高可用架构设计等.目前任职于爱可生, ...

  10. mysql applier_新特性解读 | MySQL 8.0.18 有权限控制的复制

    背景 MySQL 8.0.18 以前,从服务器都是在不检查权限的情况下执行复制事务的,这样做是为了能够让主服务器获取所有内容.实际上,这意味着从机完全信任主机.但是,可能存在一些设置,其中更改跨越了主 ...

最新文章

  1. 新DNS木马可感染整个局域网内计算机
  2. suse软件管理程序zypper
  3. 4-uboot编译流程
  4. 北斗导航 | 基于CRDSS(Comprehensive RDSS, 全面RDSS)的北斗抗干扰技术研究:RDSS+RNSS(论文翻译)
  5. moss 2007 单点登录的配置
  6. 贪吃蛇C语言源码与算法分析
  7. SQL Server Profiler 常见问题总结
  8. 讯飞输入法pad版x86_讯飞搜狗为何抵不过百度输入法?读完你就明白了
  9. 剑指offer之机器人的运动轨迹
  10. 用友T6打开UFO报表提示登录失败
  11. 计算机怎么改鼠标标志,win10系统电脑的鼠标图标怎么修改
  12. windows连接局域网打印机出现0x0000007c错误处理方法
  13. 重学React基础知识整理——组件间的另类通信“插槽”(五)
  14. mysql-8xxx遇坑后的安装
  15. 公关世界杂志公关世界杂志社公关世界编辑部2022年第22期目录
  16. @vaild校验参数
  17. linux上使用scp命令进行上传和下载
  18. OSI与TCP/IP协议簇、数据链路层
  19. 浅析Content Negotation在Nancy的实现和使用
  20. Vue el-table-column根据行数据添加button和修改对应数据and控制显示条件

热门文章

  1. http请求转为https请求 java_如何将Javaweb工程的访问协议由http改为https及通过域名访问?...
  2. trycatch抛出异常_满屏的trycatch,这代码写得真丑!
  3. splice方法_JavaScript数组_数组方法【一】(二十六)
  4. Web安全:XSS、CSRF以及如何防范
  5. Spring Boot实现动态数据库配置
  6. C++之explicit构造函数
  7. 单目深度估计方法:算法梳理与代码实现
  8. 年度重磅!2020年度中国计算机视觉人才调研报告正式发布
  9. 数据分析与机器学习之线性回归与逻辑回归(六)
  10. 021.4 IO流——字节、字符桥梁(编码解码)