这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

适用于代理的 Rest API

这些 API 调用与标准 Vertica 节点交互。

备份和还原

数据库

主机

作业

许可证

节点

Webhooks

1 - VerticaAPIKey

管理 API 需要使用名为 VerticaAPIKEY 的身份验证密钥来访问某些 API 资源。可以使用 apikeymgr 命令行工具管理 API 密钥。

usage: apikeymgr [-h] [--user REQUESTOR] [--app APPLICATION] [--delete]
                 [--create] [--update] [--migrate]
                 [--secure {restricted,normal,admin}] [--list]

API key management tool

optional arguments:
  -h, --help            show this help message and exit
  --user REQUESTOR      The name of the person requesting the key
  --app APPLICATION     The name of the application that will use the key
  --delete              Delete the key for the given R & A
  --create              Create a key for the given R & A
  --update              Update a key for the given R & A
  --migrate             migrate the keyset to the latest format
  --secure {restricted,normal,admin}
                        Set the keys security level
  --list                List all the keys known

示例请求

若要为 dbadmin 用户创建具有 admin 访问权限的新的 VerticaAPIKEY,请输入以下命令:

$ apikeymgr --user dbadmin --app vertica --create --secure admin

响应:

Requestor  : dbadmin
Application: vertica
API Key    : ValidAPIKey
Synchronizing cluster...

2 - 备份和还原

可以使用这些 API 调用执行数据库的备份和恢复任务。

2.1 - GET backups

返回已为 VBR 配置文件 (*.ini)(驻留在 /opt/vertica/config 中)创建的所有备份列表,并提供有关每个备份的详细信息。

资源 URL

https://<NODE>:5444/backups

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "data": [
        {
            "backups": [
                {
                    "archive_id": "v_vdb_bk_snapshot_20190305_174428",
                    "version": "v9.2.1-20190305",
                    "href": "/backups/fullbk/v_vdb_bk_snapshot_20190305_174428",
                    "exclude_patterns": "",
                    "backup_type": "full",
                    "include_patterns": "",
                    "epoch": "16",
                    "objects": "",
                    "hosts": "v_vdb_bk_node0001(10.20.91.240), v_vdb_bk_node0002(10.20.91.241), v_vdb_bk_node0003(10.20.91.242), v_vdb_bk_node0004(10.20.91.243), v_vdb_bk_node0005(10.20.91.244)"
                },
                {
                    "archive_id": "v_vdb_bk_snapshot_20190305_174025",
                    "version": "v9.2.1-20190305",
                    "href": "/backups/fullbk/v_vdb_bk_snapshot_20190305_174025",
                    "exclude_patterns": "",
                    "backup_type": "full",
                    "include_patterns": "",
                    "epoch": "16",
                    "objects": "",
                    "hosts": "v_vdb_bk_node0001(10.20.91.240), v_vdb_bk_node0002(10.20.91.241), v_vdb_bk_node0003(10.20.91.242), v_vdb_bk_node0004(10.20.91.243), v_vdb_bk_node0005(10.20.91.244)"
                }
            ],
            "config_file": "/opt/vertica/config/fullbk.ini",
            "config_script_base": "fullbk",
            "num_backups": 2
        }
    ],
    "href": "/backups",
    "mime-type": "application/vertica.databases.json-v2"
}

2.2 - POST backups/:config_script_base

为 VBR 配置脚本 :config_script_base 中定义的备份创建新的备份作业。VBR 配置脚本必须驻留在 /opt/vertica/configuration 中。:config_script_base 值不包含 .ini 文件名扩展名。

要确定有效的 :config_script_base 值,请参阅 GET backups

返回一个作业 ID,它可用于确定作业的状态。

资源 URL

https://<NODE>:5444/backups/:config_script_base

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "id": "CreateBackup-VMart-1404750602.03",
    "url": "/jobs/CreateBackup-VMart-1404750602.03"
}

2.3 - GET backups/:config_script_base/:archive_id

返回有关特定备份的详细信息。您必须提供 :config_script_base。此值为驻留在 /opt/vertica/config 中的 VBR config 文件(没有扩展名 .ini)的名称。:archive_idGET backups 命令返回的 backup 字段的值。

资源 URL

https://<NODE>:5444/backups/:config_script_base/:archive_id

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "archive_id": "v_vdb_bk_snapshot_20190304_204814",
    "config_file": "/opt/vertica/config/fullbk.ini",
    "objects": "",
    "href": "/backups/fullbk/v_vdb_bk_snapshot_20190304_204814",
    "exclude_patterns": "",
    "epoch": "16",
    "include_patterns": "",
    "backup_type": "full",
    "version": "v9.2.1-20190304",
    "hosts": "v_vdb_bk_node0001(10.20.91.240),
             v_vdb_bk_node0002(10.20.91.241),
             v_vdb_bk_node0003(10.20.91.242),
             v_vdb_bk_node0004(10.20.91.243),
             v_vdb_bk_node0005(10.20.91.244)"
}

2.4 - POST restore/:archive_id

创建新的恢复作业,以从 :archive_id 所标识的备份存档恢复数据库。:archive_idGET backups 命令返回的 backup 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/restore/:archive_id

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "id": "RestoreBackup-VMart-1404760113.71",
    "url": "/jobs/RestoreBackup-VMart-1404760113.71"
}

3 - 数据库

可以使用这些 API 调用与数据库交互。

3.1 - GET databases

返回数据库及其当前状态和数据库属性的列表。

资源 URL

https://<NODE>:5444/databases

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

使用 cURL 的完整请求的示例:

curl -H "VerticaApiKey: ValidAPIKey" https://<NODE>:5444/databases

响应:

{
    "body": [
        {
            "href": "/databases/VMart",
            "mime-type": [
                "application/vertica.database.json-v2"
            ],
            "name": "VMart",
            "port": "5433",
            "status": "UP"
        },
        {
            "href": "/databases/testDB",
            "mime-type": [
                "application/vertica.database.json-v2"
            ],
            "name": "testDB",
            "port": "5433",
            "status": "DOWN"
        }
    ],
    "href": "/databases",
    "links": [
        "/:database_name"
    ],
    "mime-type": "application/vertica.databases.json-v2"
}

3.2 - POST databases

创建一个作业,以使用所提供的参数创建新数据库。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases

<<<<<<<

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有管理级别的安全性。

API 密钥必须具有管理 级别的安全性。

参数

示例请求

响应:

{
    "jobid": "CreateDatabase-testDB-2014-07-07 15:49:53.219445",
    "resource": "/jobs/CreateDatabase-testDB-2014-07-07 15:49:53.219445",
    "userid": "dbadmin"
}

3.3 - GET databases/:database_name

返回特定数据库的详细信息。:database_nameGET databases 命令返回的 name 字段的值。

资源 URL

https://<NODE>:5444/databases/:database_name

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": {
        "database_id": "VMart",
        "id": "VMart",
        "nodes": "v_vmart_node0001,v_vmart_node0002,v_vmart_node0003",
        "nodes_new": [
            {
                "catalog_base": "/home/dbadmin",
                "data_base": "/home/dbadmin",
                "host": "10.20.100.247",
                "id": "v_vmart_node0001"
            },
            {
                "catalog_base": "/home/dbadmin",
                "data_base": "/home/dbadmin",
                "host": "10.20.100.248",
                "id": "v_vmart_node0002"
            },
            {
                "catalog_base": "/home/dbadmin",
                "data_base": "/home/dbadmin",
                "host": "10.20.100.249",
                "id": "v_vmart_node0003"
            }
        ],
        "path": "/home/dbadmin/VMart",
        "port": "5433",
        "restartpolicy": "ksafe",
        "status": "UP"
    },
    "href": "/databases/VMart",
    "links": [
        "/configuration",
        "/hosts",
        "/license",
        "/nodes",
        "/process",
        "/rebalance/process",
        "/status",
        "/Workload Analyzer/process"
    ],
    "mime-type": "application/vertica.database.json-v2"
}

3.4 - PUT databases/:database_name

创建一个作业,以对 :database_name 所标识的数据库运行 action 参数所标识的操作。:database_nameGET databases 命令返回的 name 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name

认证

请求头中需要包含 VerticaAPIKey

API 密钥的安全性级别必须为普通或更高。

参数

示例请求

响应:

{
    "id": "StopDatabase-testDB-2014-07-20 13:28:49.321744",
    "url": "/jobs/StopDatabase-testDB-2014-07-20 13:28:49.321744"
}

3.5 - DELETE databases/:database_name

创建一个作业,以在群集中删除(丢弃)现有数据库。若要执行此操作,您必须先停止该数据库。:database_nameGET databases 命令返回的 name 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有管理 级别的安全性。

参数

无。

示例请求

响应:

{
    "id": "DropDatabase-TestDB-2014-07-18 12:50:33.332383",
    "url": "/jobs/DropDatabase-TestDB-2014-07-18 12:50:33.332383"
}

3.6 - GET databases/:database_name/configuration

返回 :database_name 所标识的数据库的配置参数列表。:database_nameGET databases 命令返回的 name 字段的值。

资源 URL

https://<NODE>:5444/databases/:database_name/configuration

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

响应:

此 API 调用将返回超过 100 个配置参数。以下响应只是返回的总数中的一小部分。

[
    {
        "node_name": "ALL",
        "parameter_name": "ACDAlgorithmForSynopsisVersion1",
        "current_value": "1",
        "restart_value": "1",
        "database_value": "1",
        "default_value": "1",
        "current_level": "DEFAULT",
        "restart_level": "DEFAULT",
        "is_mismatch": "f",
        "groups": "",
        "allowed_levels": "SESSION, DATABASE",
        "superuser_visible_only": "f",
        "change_under_support_guidance": "t",
        "change_requires_restart": "f",
        "description": "Algorithm used to interpret synopsis version 1 for approximate count distinct"
    },
    {
        "node_name": "ALL",
        "parameter_name": "ACDLinearCountThreshold",
        "current_value": "-1.000000",
        "restart_value": "-1.000000",
        "database_value": "-1.000000",
        "default_value": "-1.000000",
        "current_level": "DEFAULT",
        "restart_level": "DEFAULT",
        "is_mismatch": "f",
        "groups": "",
        "allowed_levels": "SESSION, DATABASE",
        "superuser_visible_only": "f",
        "change_under_support_guidance": "t",
        "change_requires_restart": "f",
        "description": "If positive, will overwrite the default linear counting threshold in approximate count distinct"
    },
    {
        "node_name": "ALL",
        "parameter_name": "ACDSynopsisVersion",
        "current_value": "2",
        "restart_value": "2",
        "database_value": "2",
        "default_value": "2",
        "current_level": "DEFAULT",
        "restart_level": "DEFAULT",
        "is_mismatch": "f",
        "groups": "",
        "allowed_levels": "SESSION, DATABASE",
        "superuser_visible_only": "f",
        "change_under_support_guidance": "t",
        "change_requires_restart": "f",
        "description": "Default synopsis version to be generated by approximate count distinct"
    },
    {
        "node_name": "ALL",
        "parameter_name": "AHMBackupManagement",
        "current_value": "0",
        "restart_value": "0",
        "database_value": "0",
        "default_value": "0",
        "current_level": "DEFAULT",
        "restart_level": "DEFAULT",
        "is_mismatch": "f",
        "groups": "",
        "allowed_levels": "NODE, DATABASE",
        "superuser_visible_only": "f",
        "change_under_support_guidance": "t",
        "change_requires_restart": "f",
        "description": "Consider backup epochs when setting new AHM"
    },
    {
        "node_name": "ALL",
        "parameter_name": "ARCCommitPercentage",
        "current_value": "3.000000",
        "restart_value": "3.000000",
        "database_value": "3.000000",
        "default_value": "3.000000",
        "current_level": "DEFAULT",
        "restart_level": "DEFAULT",
        "is_mismatch": "f",
        "groups": "",
        "allowed_levels": "DATABASE",
        "superuser_visible_only": "f",
        "change_under_support_guidance": "t",
        "change_requires_restart": "f",
        "description": "ARC will commit only if the change is more than the percentage specified"
    },
    {
        "node_name": "ALL",
        "parameter_name": "AWSCAFile",
        "current_value": "",
        "restart_value": "",
        "database_value": "",
        "default_value": "",
        "current_level": "DEFAULT",
        "restart_level": "DEFAULT",
        "is_mismatch": "f",
        "groups": "",
        "allowed_levels": "DATABASE",
        "superuser_visible_only": "f",
        "change_under_support_guidance": "f",
        "change_requires_restart": "f",
        "description": "Overrides the default CA file"
    },
    ...
]

3.7 - PUT databases/:database_name/configuration

:database_name 所标识的数据库设置一个或多个配置参数。:database_nameGET databases 命令返回的 name 字段的值。

返回参数名称、请求的值和尝试的更改的结果(Success 或 Failed)。

资源 URL

https://<NODE>:5444/databases/:database_name/configuration

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有管理级别的安全性。

参数

示例请求

响应:

[
    {
        "key": "JavaBinaryForUDx",
        "result": "Success",
        "value": "/usr/bin/java"
    },
    {
        "key": "TransactionIsolationLevel",
        "result": "Success",
        "value": "SERIALIZABLE"
    }
]

3.8 - GET databases/:database_name/hosts

返回与 :database_name 所标识的数据库关联的每个主机的主机名/IP 地址、节点名称和 UP/DOWN 状态。:database_nameGET databases 命令返回的 name 字段的值。

资源 URL

https://<NODE>:5444/databases/:database_name/hosts

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": [
        {
            "hostname": "10.20.100.247",
            "nodename": "v_vmart_node0001",
            "status": "UP",
            "ts": "2014-07-18T13:12:31.904191"
        },
        {
            "hostname": "10.20.100.248",
            "nodename": "v_vmart_node0002",
            "status": "UP",
            "ts": "2014-07-18T13:12:31.904209"
        },
        {
            "hostname": "10.20.100.249",
            "nodename": "v_vmart_node0003",
            "status": "UP",
            "ts": "2014-07-18T13:12:31.904215"
        }
    ],
    "href": "/databases/VMart/hosts",
    "links": [],
    "mime-type": "application/vertica.hosts.json-v2"
}

3.9 - POST databases/:database_name/hosts

创建一个作业,以将主机添加到 :database_name 所标识的数据库。此主机必须已属于该群集的一部分。:database_nameGET databases 命令返回的 name 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/hosts

<<<<<<<

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有管理级别的安全性。

API 密钥必须具有管理 级别的安全性。

参数

示例请求

响应:

{
    "id": "AddHostToDatabase-testDB-2014-07-20 12:24:04.088812",
    "url": "/jobs/AddHostToDatabase-testDB-2014-07-20 12:24:04.088812"
}

3.10 - DELETE databases/:database_name/hosts/:host_id

创建一个作业,以从 :database_name 所标识的数据库中移除 :host_id 所标识的主机。:database_nameGET databases 命令返回的 name 字段的值。:host_idGET databases/:database_name 返回的 host 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/hosts/:host_id

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有管理 级别的安全性。

参数

示例请求

响应:

{
    "id": "RemoveHostFromDatabase-testDB-2014-07-20 13:41:15.646235",
    "url": "/jobs/RemoveHostFromDatabase-testDB-2014-07-20 13:41:15.646235"
}

3.11 - POST databases/:database_name/hosts/:host_id/process

创建一个作业,以在 :host_id 所标识的主机上启动 :database_name 所标识的数据库的 Vertica 进程。:database_nameGET databases 命令返回的 name 字段的值。:host_idGET databases/:database_name 返回的 host 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/hosts/:host_id/process

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "id": "StartDatabase-testDB-2014-07-20 13:14:03.968340",
    "url": "/jobs/StartDatabase-testDB-2014-07-20 13:14:03.968340"
}

3.12 - GET databases/:database_name/license

返回有关 :database_name 所标识的数据库正在使用的数据库许可证的详细信息。:database_nameGET databases 命令返回的 name 字段的值。

资源 URL

https://<NODE>:5444/:database_name/license

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

响应:

{
    "body": {
        "details": {
            "assigned_to": "Vertica Systems, Inc.",
            "grace_period": 0,
            "is_ce": false,
            "is_unlimited": false,
            "name": "vertica",
            "not_after": "Perpetual",
            "not_before": "2007-08-03"
        },
        "last_audit": {
            "audit_date": "2014-07-18 13:49:22.530105-04",
            "database_size_bytes": "814060522",
            "license_size_bytes": "536870912000",
            "usage_percent": "0.00151630588248372"
        }
    },
    "href": "/databases/VMart/license",
    "links": [],
    "mime-type": "application/vertica.license.json-v2"
}

3.13 - GET databases/:database_name/licenses

返回有关 :database_name 所标识的数据库正在使用的所有许可证的详细信息。:database_nameGET databases 命令返回的 name 字段的值。

资源 URL

https://<NODE>:5444/:database_name/licenses

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

响应:

{
    "body": [
        {
            "details": {
                "assigned_to": "Vertica Systems, Inc.",
                "audit_date": "2014-07-19 21:35:25.111312",
                "is_ce": "False",
                "name": "vertica",
                "node_restriction": "",
                "not_after": "Perpetual",
                "not_before": "2007-08-03",
                "size": "500GB"
            },
            "last_audit": {
                "audit_date": "2014-07-19 21:35:26.318378-04",
                "database_size_bytes": "819066288",
                "license_size_bytes": "536870912000",
                "usage_percent": "0.00152562984824181"
            }
        },
        {
            "details": {
                "assigned_to": "Vertica Systems, Inc., FlexTable",
                "audit_date": "2014-07-19 21:35:25.111312",
                "is_ce": "False",
                "name": "com.vertica.flextable",
                "node_restriction": "",
                "not_after": "Perpetual",
                "not_before": "2007-08-03",
                "size": "500GB"
            },
            "last_audit": {
                "audit_date": "2014-07-19 21:35:25.111312",
                "database_size_bytes": 0,
                "license_size_bytes": 536870912000,
                "usage_percent": 0
            }
        }
    ],
    "href": "/databases/VMart/licenses",
    "links": [],
    "mime-type": "application/vertica.features.json-v2"
}

3.14 - DELETE databases/:database_name/hosts/:host_id/process

创建一个作业,以在 :host_id 所标识的主机上停止 :database_name 所标识的数据库的 Vertica 进程。:database_nameGET databases 命令返回的 name 字段的值。:host_idGET databases/:database_name 返回的 host 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/hosts/:host_id/process

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "id": "StopDatabase-testDB-2014-07-20 13:02:08.453547",
    "url": "/jobs/StopDatabase-testDB-2014-07-20 13:02:08.453547"
}

3.15 - POST databases/:database_name/hosts/:host_id/replace_with/:host_id_new

创建一个作业以替换由 hosts/:host_id 标识的主机,其中 replace_with/:host_id. Vertica performs these operations for the database identified by :database_name. The :database_name 标识的主机是 GET databases 命令返回的 name 字段的值。:host_idGET databases/:database_name 返回的 host 字段的值。可以使用 GET hosts 查找有效的替换主机。替换主机不能已属于该数据库的一部分。必须在要替换的主机上停止 Vertica 进程。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/hosts/:host_id/replace_with/:host_id_new

<<<<<<<

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有管理级别的安全性。

API 密钥必须具有管理 级别的安全性。

参数

示例请求

响应:

{
    "id": "ReplaceNode-testDB-2014-07-20 13:50:28.423509",
    "url": "/jobs/ReplaceNode-testDB-2014-07-20 13:50:28.423509"
}

3.16 - GET databases/:database_name/nodes

返回 :database_name 所标识的数据库的节点 ID 的逗号分隔列表。:database_nameGET databases 命令返回的 name 字段的值。

资源 URL

https://<NODE>:5444/:database_name/nodes

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

[
    {
        "database_id": "VMart",
        "node_id": "v_vmart_node0001,v_vmart_node0002,v_vmart_node0003",
        "status": "Unknown"
    }
]

3.17 - GET databases/:database_name/nodes/:node_id

返回 :node_id 标识的节点的详细信息。:node_idGET databases/:database_name/nodes 返回的节点 ID 之一。

资源 URL

https://<NODE>:5444/:database_name/nodes/:node_id

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "db": "VMart",
    "host": "10.20.100.247",
    "name": "v_vmart_node0001",
    "state": "UP"
}

3.18 - POST databases/:database_name/process

创建一个作业,以启动 :database_name 所标识的数据库。:database_nameGET databases 命令返回的 name 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/process

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

使用 cURL 的完整请求的示例:

curl -d "epoch=epoch_number&include=host1,host2" -X POST -H "VerticaApiKey: ValidAPIKey" https://<NODE>:5444/:testDB/process

响应:

{
    "id": "StartDatabase-testDB-2014-07-20 12:41:46.061408",
    "url": "/jobs/StartDatabase-testDB-2014-07-20 12:41:46.061408"
}

3.19 - GET databases/:database_name/process

返回 :database_name 所标识的数据库的 UP 或 DOWN 状态。:database_nameGET databases 命令返回的 name 字段的值。

资源 URL

https://<NODE>:5444/databases/:database_name/process

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "state": "UP"
}

3.20 - DELETE databases/:database_name/process

创建一个作业,以停止 :database_name 所标识的数据库。:database_nameGET databases 命令返回的 name 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/process

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

使用 cURL 的完整请求的示例:

curl -X DELETE -H "VerticaApiKey: ValidAPIKey" https://<NODE>:5444/:testDB/process?user_id=dbadmin"&"passwd=vertica

响应:

{
    "id": "StopDatabase-testDB-2014-07-20 12:46:04.406637",
    "url": "/jobs/StopDatabase-testDB-2014-07-20 12:46:04.406637"
}

3.21 - POST databases/:database_name/rebalance/process

创建一个作业,以对 :database_name 所标识的数据库运行重新平衡。:database_nameGET databases 命令返回的 name 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/rebalance/process

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

响应:

{
    "id": "RebalanceData-testDB-2014-07-20 21:42:45.731038",
    "url": "/jobs/RebalanceData-testDB-2014-07-20 21:42:45.731038"
}

3.22 - POST databases/:database_name/Workload analyzer/process

创建一个作业,以对 :database_name 所标识的数据库运行 Workload Analyzer。:database_nameGET databases 命令返回的 name 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 URL

https://<NODE>:5444/databases/:database_name/Workload Analyzer/process

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

响应:

{
    "id": "AnalyzeWorkLoad-testDB-2014-07-20 21:48:27.972989",
    "url": "/jobs/AnalyzeWorkLoad-testDB-2014-07-20 21:48:27.972989"
}

4 - 主机

可以使用这些 API 调用获取有关群集中的主机的信息。

4.1 - GET hosts

返回群集中的主机的列表,以及有关每个主机的硬件、软件和网络详细信息。

资源 URL

https://<NODE>:5444/hosts

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": [
        {
            "cpu_info": {
                "cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
                "number_of_cpus": 2
            },
            "host_id": "10.20.100.247",
            "hostname": "v_vmart_node0001.example.com",
            "max_user_proc": "3833",
            "nics": [
                {
                    "broadcast": "10.20.100.255",
                    "ipaddr": "10.20.100.247",
                    "name": "eth0",
                    "netmask": "255.255.255.0",
                    "speed": "unknown"
                },
                {
                    "broadcast": "255.255.255.255",
                    "ipaddr": "127.0.0.1",
                    "name": "lo",
                    "netmask": "255.0.0.0",
                    "speed": "locallink"
                }
            ],
            "total_memory": 3833,
            "vertica": {
                "arch": "x86_64",
                "brand": "vertica",
                "release": "20140716",
                "version": "12.0.x0"
            }
        },
        {
            "cpu_info": {
                "cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
                "number_of_cpus": 2
            },
            "host_id": "10.20.100.248",
            "hostname": "v_vmart_node0002.example.com",
            "max_user_proc": "3833",
            "nics": [
                {
                    "broadcast": "10.20.100.255",
                    "ipaddr": "10.20.100.248",
                    "name": "eth0",
                    "netmask": "255.255.255.0",
                    "speed": "unknown"
                },
                {
                    "broadcast": "255.255.255.255",
                    "ipaddr": "127.0.0.1",
                    "name": "lo",
                    "netmask": "255.0.0.0",
                    "speed": "locallink"
                }
            ],
            "total_memory": 3833,
            "vertica": {
                "arch": "x86_64",
                "brand": "vertica",
                "release": "20140716",
                "version": "12.0.x0"
            }
        },
        {
            "cpu_info": {
                "cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
                "number_of_cpus": 2
            },
            "host_id": "10.20.100.249",
            "hostname": "v_vmart_node0003.example.com",
            "max_user_proc": "3833",
            "nics": [
                {
                    "broadcast": "10.20.100.255",
                    "ipaddr": "10.20.100.249",
                    "name": "eth0",
                    "netmask": "255.255.255.0",
                    "speed": "unknown"
                },
                {
                    "broadcast": "255.255.255.255",
                    "ipaddr": "127.0.0.1",
                    "name": "lo",
                    "netmask": "255.0.0.0",
                    "speed": "locallink"
                }
            ],
            "total_memory": 3833,
            "vertica": {
                "arch": "x86_64",
                "brand": "vertica",
                "release": "20140716",
                "version": "12.0.x0"
            }
        }
    ],
    "href": "/hosts",
    "links": [
        "/:hostid"
    ],
    "mime-type": "application/vertica.hosts.json-v2"
}

4.2 - GET hosts/:hostid

返回有关 :host_id 所标识的主机的硬件、软件和网络详细信息。可以使用 GET hosts 查找每个主机的 :host_id

资源 URL

https://<NODE>:5444/hosts/:hostid

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": {
        "cpu_info": {
            "cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
            "number_of_cpus": 2
        },
        "hostname": "v_vmart_node0001.example.com",
        "max_user_proc": "3833",
        "nics": [
            {
                "broadcast": "10.20.100.255",
                "ipaddr": "10.20.100.247",
                "name": "eth0",
                "netmask": "255.255.255.0",
                "speed": "unknown"
            },
            {
                "broadcast": "255.255.255.255",
                "ipaddr": "127.0.0.1",
                "name": "lo",
                "netmask": "255.0.0.0",
                "speed": "locallink"
            }
        ],
        "total_memory": 3833,
        "vertica": {
            "arch": "x86_64",
            "brand": "vertica",
            "release": "20140716",
            "version": "12.0.x0"
        }
    },
    "href": "/hosts/10.20.100.247",
    "links": [],
    "mime-type": "application/vertica.host.json-v2"
}

5 - 作业

可以使用这些 API 调用获取有关数据库的作业的信息。

5.1 - GET jobs

返回代理正在跟踪的作业的列表和作业详细信息。

作业始终立即启动。is_running 字段是一个布尔值。如果 is_running 为 false,则表明作业已完成。

exit_code 详细介绍了作业的状态。某些类型的作业的 exit_code 是不同的:

  • 对于备份作业:

    • 0 表示成功。

    • 所有其他数字都表示失败。

  • 对于所有其他作业:

    • -9 表示成功。

    • 所有其他数字都表示失败。

可以在 /opt/vertica/log/agentStdMsg.log 中查看有关失败的详细信息。

资源 URL

https://<NODE>:5444/jobs

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": [
        {
            "exit_code": 0,
            "id": "CreateBackup-VMart-1405012447.75",
            "is_running": false,
            "status": "unused",
            "ts": "1405012461.18"
        },
        {
            "exit_code": 1,
            "id": "CreateBackup-VMart-1405012454.88",
            "is_running": false,
            "status": "unused",
            "ts": "1405012455.18"
        }
    ],
    "href": "/jobs",
    "links": [
        "/:jobid"
    ],
    "mime-type": "application/vertica.jobs.json-v2"
}

5.2 - GET jobs/:id

使用所提供的 :id 获取特定作业的详细信息。可以使用 GET jobs 确定 jobs/:id 的列表。

特定作业的详细信息与 GET jobs 为所有作业提供的详细信息相同。

资源 URL

https://<NODE>:5444/jobs/:id

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

6 - 许可证

可以使用这些 API 调用管理数据库的许可证。

6.1 - POST licenses

将许可证文件上传并应用到此群集。

必须以 HTTP POST 表单上传格式提供许可证文件,并用名称 license 标识该许可证文件。例如,可以使用以下 cURL:

curl -k --request POST -H "VerticaApiKey:ValidAPIKey" \
https://v_vmart_node0001:5444/licenses --form "license=@vlicense.dat"

资源 URL

https://<NODE>:5444/licenses

<<<<<<<

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有管理级别的安全性。

API 密钥必须具有管理 级别的安全性。

参数

无。

示例请求

响应:

成功的上传没有 HTTP 主体响应。成功的上传将返回 HTTP 200/OK 标头。

6.2 - GET licenses

返回在创建数据库时由此群集使用的任何许可证文件。许可证文件必须驻留在 /opt/vertica/config/share 中。

资源 URL

https://<NODE>:5444/licenses

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": [
        {
            "comment": "Vertica license is valid",
            "end": "Perpetual",
            "grace": "0",
            "size": "1TB CE Nodes 3",
            "start": "2011-11-22",
            "status": true,
            "vendor": "Vertica Community Edition"
        }
    ],
    "href": "/license",
    "links": [],
    "mime-type": "application/vertica.license.json-v2"
}

7 - 节点

可以使用这些 API 调用检索有关群集中的节点的信息。

7.1 - GET nodes

返回与此群集关联的节点的列表。

资源 URL

https://<NODE>:5444/nodes

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": [
        "node0001",
        "node0002",
        "node0003",
        "v_testdb_node0001",
        "v_testdb_node0002",
        "v_testdb_node0003",
        "v_vmart_node0001",
        "v_vmart_node0002",
        "v_vmart_node0003"
    ],
    "href": "/nodes",
    "links": [
        "/:nodeid"
    ],
    "mime-type": "application/vertica.nodes.json-v2"
}

7.2 - GET nodes/:nodeid

返回 :node_id 标识的节点的详细信息。可以使用 GET nodes 查找每个节点的 :node_id

主体字段中以逗号分隔格式详细介绍了以下信息:

  • 节点名称

  • 主机地址

  • 编录目录

  • 数据目录

资源 URL

https://<NODE>:5444/nodes/:node_id

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": [
        "v_vmart_node0001",
        "10.20.100.247,/home/dbadmin,/home/dbadmin"
    ],
    "href": "/nodes/v_vmart_node0001",
    "links": [],
    "mime-type": "application/vertica.node.json-v2"
}

8 - Webhooks

可以使用这些 API 调用获取有关 Webhook 的信息,以及创建或删除 Webhook。

8.1 - GET webhooks

返回此群集的活动 Webhook 的列表。

资源 URL

https://<NODE>:5444/webhooks

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

{
    "body": [
        {
            "host": "192.168.232.1",
            "id": "79c1c8a18be02804b3d2f48ea6462909",
            "port": 80,
            "timestamp": "2014-07-20 22:54:09.829642",
            "url": "/gettest.htm"
        },
        {
            "host": "192.168.232.1",
            "id": "9c32cb0f3d2f9a7cb10835f1732fd4a7",
            "port": 80,
            "timestamp": "2014-07-20 22:54:09.829707",
            "url": "/getwebhook.php"
        }
    ],
    "href": "/webhooks",
    "links": [
        "/subscribe",
        "/:subscriber_id"
    ],
    "mime-type": "application/vertica.webhooks.json-v2"
}

8.2 - POST webhooks/subscribe

为 Webhook 创建订阅。

资源 URL

https://<NODE>:5444/webhooks/subscribe

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

示例请求

响应:

响应不采用 JSON 编码。仅有的文本响应是 Webhook 订阅的 ID。此外,HTTP 200/OK 标头指示操作成功。

79c1c8a18be02804b3d2f48ea6462909

8.3 - DELETE webhooks/:subscriber_id

删除 :subscriber_id 所标识的 Webhook。:subscriber_idGET webhooks 命令返回的 id 字段的值。

资源 URL

https://<NODE>:5444/webhooks/:subscriber_id

认证

请求头中需要包含 VerticaAPIKey

API 密钥必须具有受限 级别或更高级别的安全性。

参数

无。

示例请求

响应:

成功的删除没有 HTTP 主体响应。成功的删除将返回 HTTP 200/OK 标头。