日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql8导入 psc 没有数据_新特性解读 | MySQL 8.0.22 任意格式数据导入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:楊濤濤
資深數據庫專家,專研 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 任意格式数据导入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。