使用AWS CLI导出RDS参数组设置到表格
使用AWS CLI导出RDS参数组设置到表格

使用AWS CLI导出RDS参数组设置到表格

内容目录

使用AWS CLI导出RDS参数组设置到表格

前言

在RDS中,有一个名为”参数组”的概念,用于集中管理每个数据库引擎(如MySQL、PostgreSQL等)特有的参数设定。

最近,有一个需要升级数据库的任务,需要对数据库的参数组进行抽出,看看之前都对参数组都进行了哪些自定义。
但是( ・᷄ὢ・᷅ )
要查看参数组的设置内容,常规操作是可以在RDS管理控制台中选择”参数组”,然后显示一个列表。

在控制台上虽然可以显示内容……但是,由于项目数量非常多(例如MySQL 5.7参数组有400多个项目),在页面上进行翻页非常麻烦。而且对比起来也很麻烦,如果只是单纯对比和默认设置的改动可以使用比较功能。

截屏2023-07-13 9.37.37

虽然可以通过搜索项名进行显示和编辑,但在本次需求中要输出一个列表,如果是手打的话,这样做非常困难,工作量很大,有没有可以直接抽出这个参数组到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

截屏2023-07-13 10.27.33

找到数据栏然后获取数据选择导入CSV

截屏2023-07-13 10.29.59

点击加载即可

截屏2023-07-13 10.40.07

• 表头的项目名称是以日本语显示的,与管理控制台中显示的名称相对应。(但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

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注