这些 API 调用与标准 Vertica 节点交互。
适用于代理的 Rest API
- 1: VerticaAPIKey
- 2: 备份和还原
- 2.1: GET backups
- 2.2: POST backups/:config_script_base
- 2.3: GET backups/:config_script_base/:archive_id
- 2.4: POST restore/:archive_id
- 3: 数据库
- 3.1: GET databases
- 3.2: POST databases
- 3.3: GET databases/:database_name
- 3.4: PUT databases/:database_name
- 3.5: DELETE databases/:database_name
- 3.6: GET databases/:database_name/configuration
- 3.7: PUT databases/:database_name/configuration
- 3.8: GET databases/:database_name/hosts
- 3.9: POST databases/:database_name/hosts
- 3.10: DELETE databases/:database_name/hosts/:host_id
- 3.11: POST databases/:database_name/hosts/:host_id/process
- 3.12: GET databases/:database_name/license
- 3.13: GET databases/:database_name/licenses
- 3.14: DELETE databases/:database_name/hosts/:host_id/process
- 3.15: POST databases/:database_name/hosts/:host_id/replace_with/:host_id_new
- 3.16: GET databases/:database_name/nodes
- 3.17: GET databases/:database_name/nodes/:node_id
- 3.18: POST databases/:database_name/process
- 3.19: GET databases/:database_name/process
- 3.20: DELETE databases/:database_name/process
- 3.21: POST databases/:database_name/rebalance/process
- 3.22: POST databases/:database_name/Workload analyzer/process
- 4: 主机
- 4.1: GET hosts
- 4.2: GET hosts/:hostid
- 5: 作业
- 5.1: GET jobs
- 5.2: GET jobs/:id
- 6: 许可证
- 6.1: POST licenses
- 6.2: GET licenses
- 7: 节点
- 7.1: GET nodes
- 7.2: GET nodes/:nodeid
- 8: Webhooks
- 8.1: GET webhooks
- 8.2: POST webhooks/subscribe
- 8.3: DELETE webhooks/:subscriber_id
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_id
是 GET 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_id
是 GET 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_name
是 GET 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_name
是 GET 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_name
是 GET 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_name
是 GET 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_name
是 GET 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_name
是 GET 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_name
是 GET 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_name
是 GET databases 命令返回的 name 字段的值。:host_id
是 GET 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_name
是 GET databases 命令返回的 name 字段的值。:host_id
是 GET 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_name
是 GET 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_name
是 GET 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_name
是 GET databases 命令返回的 name 字段的值。:host_id
是 GET databases/:database_name 返回的 host 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
注意
如果在主机上停止数据库会导致数据库不再是 k-safe 的,则所有数据库节点可能会关闭。资源 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_id
是 GET 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_name
是 GET 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_id
是 GET 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_name
是 GET 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_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/databases/:database_name/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"state": "UP"
}
3.20 - DELETE databases/:database_name/process
创建一个作业,以停止 :database_name
所标识的数据库。:database_name
是 GET 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_name
是 GET 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_name
是 GET 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 为所有作业提供的详细信息相同。
注意
您必须对:id
进行 URL 编码,因为一些 ID 可能包含空格或其他特殊字符。
资源 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_id
是 GET webhooks 命令返回的 id 字段的值。
资源 URL
https://<NODE>:5444/webhooks/:subscriber_id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
成功的删除没有 HTTP 主体响应。成功的删除将返回 HTTP 200/OK 标头。