可以使用这些 API 调用与数据库交互。
数据库
- 1: GET databases
- 2: POST databases
- 3: GET databases/:database_name
- 4: PUT databases/:database_name
- 5: DELETE databases/:database_name
- 6: GET databases/:database_name/configuration
- 7: PUT databases/:database_name/configuration
- 8: GET databases/:database_name/hosts
- 9: POST databases/:database_name/hosts
- 10: DELETE databases/:database_name/hosts/:host_id
- 11: POST databases/:database_name/hosts/:host_id/process
- 12: GET databases/:database_name/license
- 13: GET databases/:database_name/licenses
- 14: DELETE databases/:database_name/hosts/:host_id/process
- 15: POST databases/:database_name/hosts/:host_id/replace_with/:host_id_new
- 16: GET databases/:database_name/nodes
- 17: GET databases/:database_name/nodes/:node_id
- 18: POST databases/:database_name/process
- 19: GET databases/:database_name/process
- 20: DELETE databases/:database_name/process
- 21: POST databases/:database_name/rebalance/process
- 22: POST databases/:database_name/Workload analyzer/process
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"
}
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 - 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"
}
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"
}
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"
}
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"
},
...
]
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"
}
]
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"
}
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"
}
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"
}
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"
}
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"
}
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"
}
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"
}
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"
}
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"
}
]
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"
}
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"
}
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"
}
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"
}
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"
}
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"
}