使用AWS CLI导出RDS参数组设置到表格
前言
在RDS中,有一个名为”参数组”的概念,用于集中管理每个数据库引擎(如MySQL、PostgreSQL等)特有的参数设定。
最近,有一个需要升级数据库的任务,需要对数据库的参数组进行抽出,看看之前都对参数组都进行了哪些自定义。
但是( ・᷄ὢ・᷅ )
要查看参数组的设置内容,常规操作是可以在RDS管理控制台中选择”参数组”,然后显示一个列表。
在控制台上虽然可以显示内容……但是,由于项目数量非常多(例如MySQL 5.7参数组有400多个项目),在页面上进行翻页非常麻烦。而且对比起来也很麻烦,如果只是单纯对比和默认设置的改动可以使用比较功能。
虽然可以通过搜索项名进行显示和编辑,但在本次需求中要输出一个列表,如果是手打的话,这样做非常困难,工作量很大,有没有可以直接抽出这个参数组到Excel的办法呢。
解决方法
经过网上查阅,可以通过
AWS CLI + jq命令解决!
如果管理控制台不可行,下一个考虑就是使用AWS CLI。
通常使用AWS CLI导出参数组的内容,会以以下JSON格式输出(使用默认选项):
配置好CLI后终端输入:
aws rds describe-db-parameters --db-parameter-group-name default.mysql5.7
{
”Parameters“: [
{
”ParameterName“: ”allow-suspicious-udfs“,
”Description“: ”Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded“,
”Source“: ”engine-default“,
”ApplyType“: ”static“,
”DataType“: ”boolean“,
”AllowedValues“: ”0,1“,
”IsModifiable“: false,
”ApplyMethod“: ”pending-reboot“
},
{
”ParameterName“: ”autocommit“,
”Description“: ”Sets the autocommit mode“,
”Source“: ”engine-default“,
”ApplyType“: ”dynamic“,
”DataType“: ”boolean“,
”AllowedValues“: ”0,1“,
”IsModifiable“: true,
”ApplyMethod“: ”pending-reboot“
},
{
...
}
]
}
我通过搜索发现,有人介绍了如何使用jq命令将JSON输出转换为CSV格式的技巧。
而且,我希望不仅仅将其转换为CSV格式,还希望在表头添加相应的项目名称。
根据这些信息,我尝试编写了以下命令行,以CSV格式输出参数组的内容:
aws rds describe-db-parameters --db-parameter-group-name default.mysql5.7 \
| jq -r '["名前","値","許可された値","変更可能","送信元","適用タイプ","データ型","説明","ApplyMethod","MinimumEngineVersion"], (.Parameters[] | [.ParameterName,.ParameterValue,.AllowedValues,.IsModifiable,.Source,.ApplyType,.DataType,.Description,.ApplyMethod,.MinimumEngineVersion]) | @csv' \
| iconv -t sjis \
> 参数组.csv
可以看到 参数组.csv 已经导出到了我们的当前文件夹目录下
ll
total 0
-rw-r--r-- 1 root root 0 Jul 13 00:56 参数组.csv
我们把这个文件下载到本地,然后进行下一步导入表格的操作
导入表格
下载好我们的参数组.csv打开Excel
找到数据栏然后获取数据选择导入CSV
点击加载即可
• 表头的项目名称是以日本语显示的,与管理控制台中显示的名称相对应。(但ApplyMethod和MinimumEngineVersion没有对应的翻译,所以仍然使用英文)
• 因为要将输出文件导入Microsoft Excel,将字符编码转换为Shift-JIS。(如果在Linux上使用,请将iconv处理的部分移除)
将该CSV文件导入Excel后,你可以将其作为表格进行查看和分析!
参考:
https://dev.classmethod.jp/articles/rds-parameter-group-export-to-csv/
https://jupitrisonlabs.hatenadiary.jp/entry/20151127/1448606090