Was this helpful?
{
"sql": "CREATE TABLE events (id INT DIMENSION) TABLE_TYPE = OFFLINE"
}curl -X POST "http://localhost:9000/sql/ddl?dryRun=true" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{"sql":"CREATE TABLE events (id INT DIMENSION) TABLE_TYPE = OFFLINE"}'curl -X POST "http://localhost:9000/sql/ddl" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Database: analytics" \
-d '{"sql":"SHOW CREATE TABLE events TYPE OFFLINE"}'{
"operation": "SHOW_CREATE_TABLE",
"databaseName": "analytics",
"tableName": "analytics.events_OFFLINE",
"tableType": "OFFLINE",
"ddl": "CREATE TABLE analytics.events (id INT DIMENSION) TABLE_TYPE = OFFLINE",
"message": "Rendered canonical CREATE TABLE for analytics.events_OFFLINE."
}{
"operation": "CREATE_TABLE",
"tableName": "events_OFFLINE",
"tableType": "OFFLINE",
"dryRun": true,
"ifNotExists": false,
"schema": {
"schemaName": "events"
},
"tableConfig": {
"tableName": "events_OFFLINE",
"tableType": "OFFLINE"
},
"message": "Dry-run succeeded for CREATE TABLE events_OFFLINE."
}curl -X POST "http://localhost:9000/queryWorkloadConfigs" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"queryWorkloadName": "analytics-workload",
"nodeConfigs": [
{
"nodeType": "brokerNode",
"enforcementProfile": {
"cpuCostNs": 1500,
"memoryCostBytes": 12000
},
"propagationScheme": {
"propagationType": "table",
"propagationEntities": [
{
"entity": "myTable",
"cpuCostNs": 1500,
"memoryCostBytes": 12000
}
]
}
},
{
"nodeType": "serverNode",
"enforcementProfile": {
"cpuCostNs": 5000,
"memoryCostBytes": 40000
},
"propagationScheme": {
"propagationType": "tenant",
"propagationEntities": [
{
"entity": "analyticsTenant",
"cpuCostNs": 5000,
"memoryCostBytes": 40000
}
]
}
}
]
}'Query Workload config updated successfully for workload: analytics-workloadcurl -X GET "http://localhost:9000/queryWorkloadConfigs/instance/Server_localhost_8098" \
-H "accept: application/json"{
"analytics-workload": {
"cpuCostNs": 2500,
"memoryCostBytes": 20000
}
}curl -X POST "http://localhost:9000/queryWorkloadConfigs/refresh?resourceType=table&resourceNames=myTable_REALTIME&nodeType=serverNode" \
-H "accept: application/json"curl -X POST "http://localhost:9000/queryWorkloadConfigs/refresh?resourceType=workload&resourceNames=analytics-workload" \
-H "accept: application/json"curl -X POST "http://localhost:9000/queryWorkloadConfigs/refresh?resourceType=tenant&resourceNames=analyticsTenant" \
-H "accept: application/json"Workload propagation completed. Successful: [myTable_REALTIME], Failed: []curl -X GET "http://localhost:9000/cluster/configs" -H "accept: application/json"{
"allowParticipantAutoJoin": "true",
"enable.case.insensitive": "false",
"pinot.broker.enable.query.limit.override": "false",
"default.hyperloglog.log2m": "8"
}curl -X POST "http://localhost:9000/cluster/configs"
-H "accept: application/json"
-H "Content-Type: application/json"
-d "{ \"pinot.helix.instance.state.maxStateTransitions\" : \"20\", \"custom.cluster.prop\": \"foo\"}"{
"status": "Updated cluster config."
}curl -X DELETE "http://localhost:9000/cluster/configs/custom.cluster.prop" {
"status": "Deleted cluster config: custom.cluster.prop"
}curl -X GET "http://localhost:9000/cluster/configs/groovy/staticAnalyzerConfig" -H "accept: application/json"{
"pinot.groovy.all.static.analyzer": {
"allowedReceivers": [
"java.lang.String",
"java.lang.Math",
"java.util.List",
"java.lang.Object",
"java.util.Map"
],
"allowedImports": [
"java.lang.Math",
"java.util.List",
"java.lang.String",
"java.util.Map"
],
"allowedStaticImports": [
"java.lang.Math",
"java.util.List",
"java.lang.String",
"java.util.Map"
],
"disallowedMethodNames": [
"execute",
"invoke"
],
"methodDefinitionAllowed": false
}
}curl -X POST "http://localhost:9000/cluster/configs/groovy/staticAnalyzerConfig" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"pinot.groovy.ingestion.static.analyzer": {
"allowedReceivers": [
"java.lang.String",
"java.lang.Math",
"java.util.List",
"java.lang.Object",
"java.util.Map"
],
"allowedImports": [
"java.lang.Math",
"java.util.List",
"java.lang.String",
"java.util.Map"
],
"allowedStaticImports": [
"java.lang.Math",
"java.util.List",
"java.lang.String",
"java.util.Map"
],
"disallowedMethodNames": [
"execute",
"invoke"
],
"methodDefinitionAllowed": false
}
}'{
"status": "Updated Groovy Static Analyzer config."
}curl -X GET "http://localhost:9000/cluster/configs/groovy/staticAnalyzerConfig/default" \
-H "accept: application/json"{
"pinot.groovy.all.static.analyzer": {
"allowedReceivers": [
"java.lang.String",
"java.lang.Math",
"java.util.List",
"java.lang.Object",
"java.util.Map"
],
"allowedImports": [
"java.lang.Math",
"java.util.List",
"java.lang.String",
"java.util.Map"
],
"allowedStaticImports": [
"java.lang.Math",
"java.util.List",
"java.lang.String",
"java.util.Map"
],
"disallowedMethodNames": [
"execute",
"invoke"
],
"methodDefinitionAllowed": false
}
}curl -X GET "http://localhost:9000/cluster/info" -H "accept: application/json"{
"clusterName": "QuickStartCluster"
}curl -X GET "http://localhost:9000/health" -H "accept: text/plain"OKcurl -X GET "http://localhost:9000/leader/tables" -H "accept: application/json"{
"leadControllerEntryMap": {
"leadControllerResource_0": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_1": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_2": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_3": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_4": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_5": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_6": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_7": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": [
"baseballStats_OFFLINE"
]
},
"leadControllerResource_8": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": [
"dimBaseballTeams_OFFLINE",
"starbucksStores_OFFLINE"
]
},
"leadControllerResource_9": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": [
"billing_OFFLINE"
]
},
"leadControllerResource_10": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_11": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_12": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_13": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": [
"githubComplexTypeEvents_OFFLINE"
]
},
"leadControllerResource_14": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_15": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": [
"githubEvents_OFFLINE"
]
},
"leadControllerResource_16": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_17": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_18": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_19": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": [
"airlineStats_OFFLINE"
]
},
"leadControllerResource_20": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_21": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_22": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
},
"leadControllerResource_23": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": []
}
},
"leadControllerResourceEnabled": true
}curl -X GET "http://localhost:9000/leader/tables/baseballStats" -H "accept: application/json"{
"leadControllerEntryMap": {
"leadControllerResource_7": {
"leadControllerId": "Controller_192.168.1.24_9000",
"tableNames": [
"baseballStats"
]
}
},
"leadControllerResourceEnabled": true
}curl -X GET "http://localhost:9000/debug/tables/baseballStats?type=OFFLINE&verbosity=0" -H "accept: application/json"[
{
"tableName": "baseballStats_OFFLINE",
"numSegments": 1,
"numServers": 1,
"numBrokers": 1,
"segmentDebugInfos": [],
"serverDebugInfos": [],
"brokerDebugInfos": [],
"tableSize": {
"reportedSize": "3 MB",
"estimatedSize": "3 MB"
},
"ingestionStatus": {
"ingestionState": "HEALTHY",
"errorMessage": ""
}
}
]curl -X GET "http://localhost:9000/applicationQuotas" -H "accept: application/json"{
"myApp": 500.0,
"etlPipeline": 200.0
}curl -X GET "http://localhost:9000/applicationQuotas/myApp" -H "accept: application/json"500.0curl -X POST "http://localhost:9000/applicationQuotas/myApp?maxQueriesPerSecond=500" \
-H "accept: application/json"{
"status": "Query quota for application myApp successfully updated"
}curl -X POST "http://localhost:9000/applicationQuotas/myApp" \
-H "accept: application/json"curl -X GET "http://localhost:9000/segments/myTable/invalidPartitionMetadata?type=OFFLINE" \
-H "accept: application/json"curl -X GET "http://localhost:9000/segments/myTable/invalidPartitionMetadata?type=OFFLINE&partitionColumn=memberId" \
-H "accept: application/json"{
"seg2": "{\"columnPartitionMap\":{\"memberId\":{\"functionName\":\"Modulo\",\"numPartitions\":4,\"partitions\":[0,1]}}}",
"seg3": "not-valid-json"
}curl -X POST "http://localhost:9000/segments/myTable/reload?type=OFFLINE&forceDownload=true" \
-H "accept: application/json"{
"status": "{\"myTable_OFFLINE\":{\"numMessagesSent\":\"24\",\"reloadJobId\":\"6b2f9d35-0d3f-4ef5-91db-f77cb6fdd1c0\",\"reloadJobMetaZKStorageStatus\":\"SUCCESS\"}}"
}curl -X POST "http://localhost:9000/segments/myTable_OFFLINE/myTable_0/reload?targetInstance=Server_localhost_8098" \
-H "accept: application/json"{
"status": "Submitted reload job id: 4f947c6f-8f51-4dbf-b4e7-a8f4f446ce88, sent 1 reload messages. Job meta ZK storage status: SUCCESS"
}curl -X POST "http://localhost:9000/segments/myTable_REALTIME/uploadFromServerToDeepstore?segmentNames=myTable__0__0__20251120T0000Z&segmentNames=myTable__1__0__20251120T0000Z&forceMode=true" \
-H "accept: application/json"{
"status": "Successfully queued 2 segment(s) for force upload to deep store for table: myTable_REALTIME"
}curl -X POST "http://localhost:9000/segments/reingested?tableName=myTable" \
-H "UPLOAD_TYPE: METADATA" \
-H "DOWNLOAD_URI: s3://my-bucket/myTable/myTable__0__17__20250320T1530Z.tmp.tar.gz" \
-H "COPY_SEGMENT_TO_DEEP_STORE: true" \
-F "file=@myTable__0__17__20250320T1530Z.metadata.tar.gz"{
"status": "Successfully uploaded reingested segment: myTable__0__17__20250320T1530Z of table: myTable_REALTIME"
}curl -X DELETE "http://localhost:9000/deleteSegmentsFromSequenceNum/myTable_REALTIME?segments=myTable__0__17__20250320T1530Z&dryRun=true" \
-H "accept: application/json"curl -X DELETE "http://localhost:9000/deleteSegmentsFromSequenceNum/myTable_REALTIME?segments=myTable__0__17__20250320T1530Z&dryRun=false" \
-H "accept: application/json"{
"tableName": "myTable_REALTIME",
"dryRun": true,
"partitions": {
"0": {
"segmentsToDelete": [
"myTable__0__17__20250320T1530Z",
"myTable__0__18__20250320T1540Z"
],
"oldestSegment": "myTable__0__17__20250320T1530Z",
"latestSegment": "myTable__0__18__20250320T1540Z",
"segmentCount": 2
}
},
"message": "Dry run completed. Segments identified for deletion but not actually deleted."
}curl -X GET "http://localhost:9000/segments/segmentReloadStatus/6b2f9d35-0d3f-4ef5-91db-f77cb6fdd1c0" \
-H "accept: application/json"{
"status": "IN_PROGRESS",
"timeElapsedInMinutes": 0.6,
"estimatedTimeRemainingInMinutes": 1.4,
"totalSegmentCount": 24,
"successCount": 10,
"totalServersQueried": 6,
"totalServerCallsFailed": 0,
"failureCount": 0,
"metadata": {
"jobId": "6b2f9d35-0d3f-4ef5-91db-f77cb6fdd1c0"
},
"segmentReloadFailures": []
}curl -X GET "http://localhost:9000/segments/myTable_OFFLINE/needReload?verbose=true" \
-H "accept: application/json"{
"needReload": true,
"serverToSegmentsCheckReloadList": {
"instance123": {
"needReload": true,
"instanceId": "instance123"
}
}
}curl -X PUT "http://localhost:9000/tables/myTable_REALTIME?force=true" \
-H "Content-Type: application/json" \
-d @table-config.json{
"status": "Table config updated for myTable_REALTIME"
}curl -X PUT "http://localhost:9000/tableConfigs/myTable?forceTableSchemaUpdate=true" \
-H "Content-Type: application/json" \
-d @table-configs.json{
"status": "TableConfigs updated for myTable"
}curl -X DELETE "http://localhost:9000/tables/baseballStats" -H "accept: application/json"curl -X DELETE "http://localhost:9000/tables/baseballStats?retention=0d" -H "accept: application/json"{
"status": "Tables: [baseballStats_OFFLINE] deleted"
}curl -X DELETE "http://localhost:9000/schemas/baseballStats" -H "accept: application/json"{
"status": "Schema baseballStats deleted"
}curl -X POST "http://localhost:9000/tableConfigs/validate" \
-H "Content-Type: application/json" \
-d '{
"tableName": "myTable",
"tableType": "OFFLINE",
"segmentsConfig": { ... },
"tenants": {
"broker": "DefaultTenant",
"server": "DefaultTenant"
},
"tableIndexConfig": { ... },
...
}'{
"unrecognizedProperties": {},
"tableConfig": { ... },
"schema": { ... }
}curl -X POST "http://localhost:9000/tableConfigs/tune?validationTypesToSkip=TENANT,MINION_INSTANCES" \
-H "Content-Type: application/json" \
-d '{
"tableName": "myTable",
"schema": { ... },
"offline": { ... },
"realtime": { ... }
}'{
"tableName": "myTable",
"schema": { ... },
"offline": { ... },
"realtime": { ... },
"unrecognizedProperties": {}
}curl -X GET "http://localhost:9000/tasks/SegmentGenerationAndPushTask/taskcounts?state=IN_PROGRESS,FAILED&table=myTable_OFFLINE" \
-H "accept: application/json"{
"Task_SegmentGenerationAndPushTask_12345": {
"total": 4,
"completed": 1,
"running": 2,
"waiting": 0,
"error": 1,
"unknown": 0,
"dropped": 0,
"timedOut": 0,
"aborted": 0
}
}curl -X GET "http://localhost:9000/logicalTables" -H "accept: application/json"["logicalEvents", "logicalOrders"]curl -X GET "http://localhost:9000/logicalTables/logicalEvents" -H "accept: application/json"{
"tableName": "logicalEvents",
"physicalTableConfigMap": {
"events_2024_OFFLINE": {},
"events_2023_OFFLINE": {}
},
"brokerTenant": "DefaultTenant",
"refOfflineTableName": "events_2024_OFFLINE"
}curl -X POST "http://localhost:9000/logicalTables" \
-H "Content-Type: application/json" \
-d '{
"tableName": "logicalEvents",
"physicalTableConfigMap": {
"events_REALTIME": {},
"events_2024_OFFLINE": {}
},
"brokerTenant": "DefaultTenant",
"refOfflineTableName": "events_2024_OFFLINE",
"refRealtimeTableName": "events_REALTIME",
"timeBoundaryConfig": {
"boundaryStrategy": "min",
"parameters": {
"includedTables": ["events_2024_OFFLINE"]
}
}
}'{
"status": "Successfully created logical table: logicalEvents"
}curl -X PUT "http://localhost:9000/logicalTables/logicalEvents" \
-H "Content-Type: application/json" \
-d '{
"tableName": "logicalEvents",
"physicalTableConfigMap": {
"events_REALTIME": {},
"events_2024_OFFLINE": {},
"events_2023_OFFLINE": {}
},
"brokerTenant": "DefaultTenant",
"refOfflineTableName": "events_2024_OFFLINE",
"refRealtimeTableName": "events_REALTIME",
"timeBoundaryConfig": {
"boundaryStrategy": "min",
"parameters": {
"includedTables": ["events_2024_OFFLINE"]
}
}
}'{
"status": "Successfully updated logical table: logicalEvents"
}curl -X DELETE "http://localhost:9000/logicalTables/logicalEvents" -H "accept: application/json"{
"status": "Successfully deleted logical table: logicalEvents"
}curl -X POST "http://localhost:9000/tables/myTable/rebalance?type=OFFLINE&dryRun=true&preChecks=true" \
-H "accept: application/json"curl -X POST "http://localhost:9000/tables/myTable/pauseConsumption" -H "accept: application/json"curl -X POST "http://localhost:9000/tables/myTable/pauseConsumption?comment=maintenance&batchSize=50&batchStatusCheckIntervalSec=5&batchStatusCheckTimeoutSec=180" \
-H "accept: application/json"curl -X POST "http://localhost:9000/tables/myTable/resumeConsumption" -H "accept: application/json"curl -X POST "http://localhost:9000/tables/myTable/resumeConsumption?comment=maintenance-complete&consumeFrom=smallest" \
-H "accept: application/json"curl -X GET "http://localhost:9000/tables/myTable/pauseStatus" -H "accept: application/json"{
"pauseFlag": true,
"consumingSegments": [
"myTable__0__12__20250610T2140Z",
"myTable__1__12__20250610T2140Z"
],
"reasonCode": "ADMINISTRATIVE",
"comment": "maintenance",
"timestamp": "<stored pause-state timestamp>",
"indexOfInactiveTopics": [0, 1]
}curl -X GET "http://localhost:9000/tables/myTable/badLLCSegmentsPerPartition" \
-H "accept: application/json"{
"0": [
"myTable__0__12__20250610T2140Z",
"myTable__0__13__20250610T2200Z"
],
"1": [
"myTable__1__7__20250610T2145Z"
]
}

