この記事はMySQL Advent Calendar 2023 11日目の記事です。昨日は yoku0825 さんの MySQL公式のDockerリポジトリがcontainer-registry.oracle.comに引っ越していた | 日々の覚書 でした。
はじめに
この記事では2023年にMySQL Shellのデータダンプユーティリティに追加された地味だけど便利な機能改善について伝えると共に、MySQLがユーザーの皆さんからのフィードバックに基づいて機能改善していることを伝えたいと思っています。
追加された機能
2023年1月にリリースされたMySQL Shell 8.0.32では、データダンプユーティリティに以下のオプションが追加されました。
- where
- partitions
whereオプションはSQLのWHERE句のように使えるので、特定の条件に合致するデータだけを抜き出せます。パーティショニングテーブルを使っている場合は、partitionsオプションを使って特定のパーティションだけを抜き出すこともできます。
ダンプするデータの出力フォーマットを調整するためのオプション
- fieldsTerminatedBy
- fieldsEnclosedBy
- fieldsEscapedBy
- fieldsOptionallyEnclosed
- linesTerminatedBy
- dialect
出力フォーマットをcsv or tsvに変更したり、区切り文字や改行コードなどを細かく設定できるようになりました。
これにより、例えば古いデータをMySQLサーバーから削除したいけど必要に応じて再度ロードしたい、という場合などにもMySQL Shellのデータダンプ/ロードユーティリティを活用できるようになりました。なお、データのダンプ先、ロード対象にはファイルシステムだけでなく、オブジェクトストレージも指定できます。(オラクルクラウド、AWS、Azureのオブジェクトストレージを指定可能)
この機能が追加された背景
私はオラクル社のMySQLチームで働いています。そして、2022年の8月にオラクルクラウド上でMySQLのマネージドサービスを使っている某ユーザーより「特定の日にちのデータだけを高速にMySQLから抜き出してcsv化したい」という要望を頂きました。
そこで、MySQL BugsにMySQL ShellのDump&Loalユーティリティに対する機能改善リクエストを登録しました。その結果、今回紹介しているMySQL Shell 8.0.32での機能改善につながりました。
※私が(オラクル社員が)MySQL Bugsに登録した場合、非公開バグ扱いになってしまうため、皆さんに内容を確認してもらうことができないのが歯痒いのですが、本件に関連した機能改善リクエスト(Feature request)を「Bug #108062」として登録しています。
もちろん、機能改善リクエストを登録すれば必ず対応してもらえる、というものではありませんが、その機能の重要性が開発チームに伝われば今回のように実装してもらえる可能性があります。
(今回の機能は実装が簡単な機能だったので直ぐに実装してもらえた、という背景もありますが)
皆さんに伝えたいこと
MySQLはMySQL Bugsを通してユーザーの皆様からのフィードバックを受け付け、機能改善に役立てています。MySQL Bugsという名前になっていますが、バグ報告だけでなく機能追加リクエストも受け付けていますので(※)、普段MySQLを使っていて感じている改善要望等があれば、是非気軽に登録して頂ければと思います!
※機能追加リクエストを登録する際は、「Severity」を「S4 (Feature request)」にして登録して下さい。
明日は@tomomo1015さんです!