API customization
API customization in watsonx.data provides a way for instance administrators to customize JVM, CONFIG, catalog, and Velox (Presto (C++)) properties for Presto (Java) and Presto (C++) engines through an API.
This customization method does not require you to add the parameters inside the pod, restart the pod (if there is CPD deployment), or reach out to support personnel (if there is SaaS deployment) for customization. It also does not require any special access and privileges to the backend system. API customization is a unified way to customize allowed properties in watsonx.data, regardless of the deployment. API customization is supported through the PATCH API. API endpoints and sample requests for Presto (Java) and Presto (C++) engines are as follows:
PATCH API (Presto (Java) engine)
Endpoint
/presto_engines/{engine_id}
Request body
{
"description": "updated description for presto engine",
"engine_display_name": "sampleEngine",
"engine_properties": {
"configuration": {
"coordinator": {
"property_1": "property_value",
"property_2": "property_value"
},
"worker": {
"property_1": "property_value",
"property_2": "property_value"
}
},
"jvm": {
"coordinator": {
"property_1": "property_value",
"property_2": "property_value"
},
"worker": {
"property_1": "property_value",
"property_2": "property_value"
}
},
"catalog":{
"catalog_name":{
"property_1": "property_value",
"property_2": "property_value"
},
},
"global":{
}
},
"engine_restart": "force",
"remove_engine_properties": {
"configuration": {
"coordinator": [
"property1","property2"
],
"worker": [
"property1","property2"
]
},
"jvm": {
"coordinator": [
"property1","property2"
],
"worker": [
"property1","property2"
]
},
"catalog":{
"catalog_name":["property1","property2"]
},
"global":{
}
},
"tags": [
"tag1",
"tag2"
]
}
PATCH API (Presto (C++) engine)
Endpoint
/prestissimo_engines/{engine_id}
Request body
{
"description": "updated description for prestissimo engine",
"engine_display_name": "sampleEngine",
"engine_properties": {
"configuration": {
"coordinator": {
"property_1": "property_value",
"property_2": "property_value"
},
"worker": {
"property_1": "property_value",
"property_2": "property_value"
}
},
"catalog":{
"catalog_name":{
"property_1": "property_value",
"property_2": "property_value"
}},
"velox": {
"property_1": "property_value",
"property_2": "property_value"
}
}
},
"engine_restart": "force",
"remove_engine_properties": {
"configuration": {
"coordinator": [
"property1","property2"
],
"worker": [
"property1","property2"
]
},
"catalog":{
"catalog_name":["property1","property2"]
},
"velox":
[
"property1","property2"
]
},
"tags": [
"tag1",
"tag2"
]
}
The GET API also supports customization, but is available for internal use only.
You can find the curl example for API customization in Update presto engine.
For the list of properties that can be customized through an API for Presto (Java), see:
- Configuration properties for Presto (Java) - coordinator and worker nodes
- JVM properties for Presto (Java) - Coordinator and worker nodes
- Catalog properties for Presto (Java)
For the list of properties that can be customized through an API for Presto (C++), see:
- Configuration properties for Presto (C++) - worker nodes
- Configuration properties for Presto (C++) - coordinator nodes
- Catalog properties for Presto (C++)
- Velox properties for Presto (C++)
For properties that must be customized under the guidance of the watsonx.data support team, see Properties to be customized under support guidance.
You can get System Access Control (SAC) plug-in logs with DEBUG
information. To enable DEBUG
logs of SAC plug-in in Presto, trigger the customization API and add "com.ibm.openlakehouse.prestodb": "DEBUG"
under logConfig
.
"logConfig": {
"coordinator": {
"com.ibm.openlakehouse.prestodb": "DEBUG"
},
"worker": {}
}
For more information, see Update presto engine.