作者:杨涛涛
资深数据库专家,专研 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导入 psc 没有数据_新特性解读 | MySQL 8.0.22 任意格式数据导入相关推荐

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

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

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

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

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

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

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

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

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

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

  6. concat 不是可以识别的 内置函数名称。_新特性解读 | MySQL 8.0 窗口函数详解

    背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能.不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF, ...

  7. 端口如何支持非localhost访问_新特性解读 | MySQL 8.0.19 支持 DNS SRV

    转载自公众号:玩转MySQL 作者:洪斌 MySQL Router 是 InnoDB Cluster 架构的访问入口,在架构部署上,官方给出的建议是 router 与应用端绑定部署,避免 router ...

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

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

  9. mysql8创建用户并授权_新特性解读 | 从 wireshark 看 MySQL 8.0 加密连接

    作者:秦福朗 爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查.热爱 IT,喜欢在互联网里畅游,擅长摄影.厨艺,不会厨艺的 DBA 不是好司机,didi~ 本文来源:原创投稿 *爱可生 ...

最新文章

  1. 小程序门店自提功能开启,酷客多带你玩转O2O模式
  2. sm4加密 解密(oc)
  3. 抛出这8个问题,检验你是否真的会ThreadLocal
  4. 【归并排序】求逆序数算法
  5. springboot (spring mvc)集成swagger
  6. C是一个结构化语言它的重点在于算法和数据结构
  7. chartControl生成时间轴动态曲线
  8. perl执行环境安装(Windows)
  9. 黑客内核:如何实现属于你的实时内核?
  10. Qt常见make编译错误:/usr/bin/ld:cannot find -lxxx
  11. 微服务项目部署服务器,第3章 3.2 部署服务器 - 编排多个微服务
  12. mysql 事件统计_mysql事件统计之PERFORMANCE_SCHEMA基础详解
  13. 在我的智能手机上使用 mysql 运行节点服务器
  14. GDAL/OGR/OSR 坐标系ERROR 4: Unable to open EPSG support file gcs.csv osr.SpatialReference()
  15. 要求统计给定整数M和N区间内素数的个数,并对所有素数求和。
  16. 解决Excel 2016无法直接打开文件的问题
  17. python照片转手绘_python中如何将照片手绘化?
  18. 挫折中前行-aspera下载数据
  19. 佛系码农~手把手教你如何绘制一辆会跑车
  20. 嘉立创打印出现阻焊层为空解决方法

热门文章

  1. 2022-2028年中国高阻隔片材基膜行业市场供需形势及前瞻分析报告
  2. PyCharm 使用技巧
  3. 运行一段时间后,RestTemplate请求报400错误
  4. LeetCode简单题之基于排列构建数组
  5. GPU上稀疏矩阵的基本线性代数
  6. 物联网安全只有最薄弱的环节才有保障
  7. 视频动作定位的分层自关注网络:ICCV2019论文解析
  8. 2021年大数据Spark(七):应用架构基本了解
  9. ProgreassBar 60秒走完,
  10. Java语言中的数据类型