Use RESTful API
This page lists the major RESTful APIs provided by Kylin.
- Authentication
- Query
- CUBE
- Create cube
- Update cube
- List cubes
- Get cube
- Get cube descriptor (dimension, measure info, etc)
- Get data model (fact and lookup table info)
- Build cube
- Enable cube
- Disable cube
- Purge cube
- Delete segment
- Auto-Merge segment
- Get sql of a cube
- Get sql of a cube segment
- Force rebuild lookup table snapshot
- Clone cube
- Delete Cube
- Get hbase info
- Get current cuboid
- Migrate cube
- MODEL
- JOB
- Metadata
- Cache
- Streaming
- ACL
- Metrics
Authentication
POST /kylin/api/user/authentication
Request Header
Authorization data encoded by basic auth is needed in the header, such as:
Authorization:Basic data
You can generate data
by using below python script
python -c "import base64; print base64.standard_b64encode('$UserName:$Password')"
Response Body
- userDetails - Defined authorities and status of current user.
Response Sample
{
"userDetails": {
"username": "sample",
"password": "null",
"authorities": [
{
"authority": "ROLE_ADMIN"
},
{
"authority": "ROLE_ANALYST"
},
{
"authority": "ROLE_MODELER"
},
{
"authority": "ALL_USERS"
}
],
"disabled": false,
"defaultPassword": false,
"locked": false,
"lockedTime": 0,
"wrongTime": 0,
"uuid": "3704ba8c-deb1-ac47-729d-c1039c1bd6ec",
"last_modified": 1585219480112,
"version": "3.0.0.20500"
}
}
Curl Example
curl -c /path/to/cookiefile.txt -X POST -H "Authorization: Basic XXXXXXXXX" -H 'Content-Type: application/json' http://<host>:<port>/kylin/api/user/authentication
If login successfully, the JSESSIONID will be saved into the cookie file; In the subsequent http requests, attach the cookie, for example:
curl -b /path/to/cookiefile.txt -X PUT -H 'Content-Type: application/json' -d '{"startTime":'1423526400000', "endTime":'1423612800000', "buildType":"BUILD"}' http://<host>:<port>/kylin/api/cubes/your_cube/build
Alternatively, you can provide the username/password with option "user" in each curl call; please note this has the risk of password leak in shell history:
curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "startTime": 820454400000, "endTime": 821318400000, "buildType": "BUILD"}' http://localhost:7070/kylin/api/cubes/kylin_sales/build
Query
POST /kylin/api/query
Request Body
- sql -
required
string
The text of sql statement. - offset -
optional
int
Query offset. If offset is set in sql, curIndex will be ignored. - limit -
optional
int
Query limit. If limit is set in sql, perPage will be ignored. - acceptPartial -
optional
bool
Whether accept a partial result or not, default be "false". Set to "false" for production use. - project -
optional
string
Project to perform query. Default value is 'DEFAULT'. If you want to specify cube for your query, please refer to this wiki: Specify cube for your query
Request Sample
{
"sql":"select * from TEST_KYLIN_FACT",
"offset":0,
"limit":50000,
"acceptPartial":false,
"project":"DEFAULT"
}
Curl Example
curl -X POST -H "Authorization: Basic XXXXXXXXX" -H "Content-Type: application/json" -d '{ "sql":"select count(*) from TEST_KYLIN_FACT", "project":"learn_kylin" }' http://localhost:7070/kylin/api/query
Response Body
- columnMetas - Column metadata information of result set.
- results - Data set of result.
- cube - Cube used for this query.
- affectedRowCount - Count of affected row by this sql statement.
- isException - Whether this response is an exception.
- ExceptionMessage - Message content of the exception.
- Duration - Time cost of this query
- Partial - Whether the response is a partial result or not. Decided by
acceptPartial
of request.
Response Sample
{
"columnMetas":[
{
"isNullable":1,
"displaySize":0,
"label":"CAL_DT",
"name":"CAL_DT",
"schemaName":null,
"catelogName":null,
"tableName":null,
"precision":0,
"scale":0,
"columnType":91,
"columnTypeName":"DATE",
"readOnly":true,
"writable":false,
"caseSensitive":true,
"searchable":false,
"currency":false,
"signed":true,
"autoIncrement":false,
"definitelyWritable":false
},
{
"isNullable":1,
"displaySize":10,
"label":"LEAF_CATEG_ID",
"name":"LEAF_CATEG_ID",
"schemaName":null,
"catelogName":null,
"tableName":null,
"precision":10,
"scale":0,
"columnType":4,
"columnTypeName":"INTEGER",
"readOnly":true,
"writable":false,
"caseSensitive":true,
"searchable":false,
"currency":false,
"signed":true,
"autoIncrement":false,
"definitelyWritable":false
}
],
"results":[
[
"2013-08-07",
"32996",
"15",
"15",
"Auction",
"10000000",
"49.048952730908745",
"49.048952730908745",
"49.048952730908745",
"1"
],
[
"2013-08-07",
"43398",
"0",
"14",
"ABIN",
"10000633",
"85.78317064220418",
"85.78317064220418",
"85.78317064220418",
"1"
]
],
"cube":"test_kylin_cube_with_slr_desc",
"affectedRowCount":0,
"isException":false,
"exceptionMessage":null,
"duration":3451,
"partial":false
}
Prepare query
POST /kylin/api/query/prestate
Request Body
- sql -
required
string
The text of sql statement. - offset -
optional
int
Query offset. If offset is set in sql, curIndex will be ignored. - limit -
optional
int
Query limit. If limit is set in sql, perPage will be ignored. - acceptPartial -
optional
bool
Whether accept a partial result or not, default be "false". Set to "false" for production use. - project -
optional
string
Project to perform query. Default value is 'DEFAULT'.
Request Sample
{
"sql":"select * from TEST_KYLIN_FACT",
"offset":0,
"limit":50000,
"acceptPartial":false,
"project":"DEFAULT"
}
Save query
POST /kylin/api/saved_queries
Request Body
- sql -
required
string
The text of sql statement. - name -
required
string
Sql name. - project -
required
string
Project to perform query. - description -
optional
string
Sql description.
Request Sample
{
"sql": "select count(*) from kylin_sales",
"name": "test",
"project": "learn_kylin"
}
Remove saved query
DELETE /kylin/api/saved_queries/{id}
Request Parameters
- id -
required
string
The id of saved query you want to remove
Get saved queries
GET /kylin/api/saved_queries
Response Sample
[
{
"name": "test",
"project": "learn_kylin",
"sql": "select count(*) from kylin_sales",
"description": null,
"id": "-1674470999"
}
]
Get running queries
GET /kylin/api/query/runningQueries
Stop Query
PUT /kylin/api/query/{queryId}/stop
Path Variable
- queryId -
required
String
The queryId of you want to stop. You can obtain it byGet running queries
.
List queryable tables
GET /kylin/api/tables_and_columns
Path Variable
- project -
required
string
The project to load tables
Response Sample
[
{
"columns":[
{
"table_NAME":"TEST_CAL_DT",
"table_SCHEM":"EDW",
"column_NAME":"CAL_DT",
"data_TYPE":91,
"nullable":1,
"column_SIZE":-1,
"buffer_LENGTH":-1,
"decimal_DIGITS":0,
"num_PREC_RADIX":10,
"column_DEF":null,
"sql_DATA_TYPE":-1,
"sql_DATETIME_SUB":-1,
"char_OCTET_LENGTH":-1,
"ordinal_POSITION":1,
"is_NULLABLE":"YES",
"scope_CATLOG":null,
"scope_SCHEMA":null,
"scope_TABLE":null,
"source_DATA_TYPE":-1,
"iS_AUTOINCREMENT":null,
"table_CAT":"defaultCatalog",
"remarks":null,
"type_NAME":"DATE"
},
{
"table_NAME":"TEST_CAL_DT",
"table_SCHEM":"EDW",
"column_NAME":"WEEK_BEG_DT",
"data_TYPE":91,
"nullable":1,
"column_SIZE":-1,
"buffer_LENGTH":-1,
"decimal_DIGITS":0,
"num_PREC_RADIX":10,
"column_DEF":null,
"sql_DATA_TYPE":-1,
"sql_DATETIME_SUB":-1,
"char_OCTET_LENGTH":-1,
"ordinal_POSITION":2,
"is_NULLABLE":"YES",
"scope_CATLOG":null,
"scope_SCHEMA":null,
"scope_TABLE":null,
"source_DATA_TYPE":-1,
"iS_AUTOINCREMENT":null,
"table_CAT":"defaultCatalog",
"remarks":null,
"type_NAME":"DATE"
}
],
"table_NAME":"TEST_CAL_DT",
"table_SCHEM":"EDW",
"ref_GENERATION":null,
"self_REFERENCING_COL_NAME":null,
"type_SCHEM":null,
"table_TYPE":"TABLE",
"table_CAT":"defaultCatalog",
"remarks":null,
"type_CAT":null,
"type_NAME":null
}
]
Create cube
POST /kylin/api/cubes
Request Body
- cubeDescData -
required
string
cubeDescData to create - cubeName -
required
string
cubeName to create - projectName -
required
string
projectName to which cube belongs
Request Sample
{
"cubeDescData":"{\"uuid\": \"0ef9b7a8-3929-4dff-b59d-2100aadc8dbf\",\"last_modified\": 0,\"version\": \"3.0.0.20500\",\"name\": \"kylin_test_cube\",\"is_draft\": false,\"model_name\": \"kylin_sales_model\",\"description\": \"\",\"null_string\": null,\"dimensions\": [{\"name\": \"TRANS_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"TRANS_ID\",\"derived\": null},{\"name\": \"YEAR_BEG_DT\",\"table\": \"KYLIN_CAL_DT\",\"column\": null,\"derived\": [\"YEAR_BEG_DT\"]},{\"name\": \"MONTH_BEG_DT\",\"table\": \"KYLIN_CAL_DT\",\"column\": null,\"derived\": [\"MONTH_BEG_DT\"]},{\"name\": \"WEEK_BEG_DT\",\"table\": \"KYLIN_CAL_DT\",\"column\": null,\"derived\": [\"WEEK_BEG_DT\"]},{\"name\": \"USER_DEFINED_FIELD1\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": null,\"derived\": [\"USER_DEFINED_FIELD1\"]},{\"name\": \"USER_DEFINED_FIELD3\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": null,\"derived\": [\"USER_DEFINED_FIELD3\"]},{\"name\": \"META_CATEG_NAME\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": \"META_CATEG_NAME\",\"derived\": null},{\"name\": \"CATEG_LVL2_NAME\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": \"CATEG_LVL2_NAME\",\"derived\": null},{\"name\": \"CATEG_LVL3_NAME\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": \"CATEG_LVL3_NAME\",\"derived\": null},{\"name\": \"LSTG_FORMAT_NAME\",\"table\": \"KYLIN_SALES\",\"column\": \"LSTG_FORMAT_NAME\",\"derived\": null},{\"name\": \"SELLER_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"SELLER_ID\",\"derived\": null},{\"name\": \"BUYER_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"BUYER_ID\",\"derived\": null},{\"name\": \"ACCOUNT_BUYER_LEVEL\",\"table\": \"BUYER_ACCOUNT\",\"column\": \"ACCOUNT_BUYER_LEVEL\",\"derived\": null},{\"name\": \"ACCOUNT_SELLER_LEVEL\",\"table\": \"SELLER_ACCOUNT\",\"column\": \"ACCOUNT_SELLER_LEVEL\",\"derived\": null},{\"name\": \"BUYER_COUNTRY\",\"table\": \"BUYER_ACCOUNT\",\"column\": \"ACCOUNT_COUNTRY\",\"derived\": null},{\"name\": \"SELLER_COUNTRY\",\"table\": \"SELLER_ACCOUNT\",\"column\": \"ACCOUNT_COUNTRY\",\"derived\": null},{\"name\": \"BUYER_COUNTRY_NAME\",\"table\": \"BUYER_COUNTRY\",\"column\": \"NAME\",\"derived\": null},{\"name\": \"SELLER_COUNTRY_NAME\",\"table\": \"SELLER_COUNTRY\",\"column\": \"NAME\",\"derived\": null},{\"name\": \"OPS_USER_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"OPS_USER_ID\",\"derived\": null},{\"name\": \"OPS_REGION\",\"table\": \"KYLIN_SALES\",\"column\": \"OPS_REGION\",\"derived\": null}],\"measures\": [{\"name\": \"GMV_SUM\",\"function\": {\"expression\": \"SUM\",\"parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.PRICE\"},\"returntype\": \"decimal(19,4)\"}},{\"name\": \"BUYER_LEVEL_SUM\",\"function\": {\"expression\": \"SUM\",\"parameter\": {\"type\": \"column\",\"value\": \"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\"},\"returntype\": \"bigint\"}},{\"name\": \"SELLER_LEVEL_SUM\",\"function\": {\"expression\": \"SUM\",\"parameter\": {\"type\": \"column\",\"value\": \"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\"},\"returntype\": \"bigint\"}},{\"name\": \"TRANS_CNT\",\"function\": {\"expression\": \"COUNT\",\"parameter\": {\"type\": \"constant\",\"value\": \"1\"},\"returntype\": \"bigint\"}},{\"name\": \"SELLER_CNT_HLL\",\"function\": {\"expression\": \"COUNT_DISTINCT\",\"parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.SELLER_ID\"},\"returntype\": \"hllc(10)\"}},{\"name\": \"TOP_SELLER\",\"function\": {\"expression\": \"TOP_N\",\"parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.PRICE\",\"next_parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.SELLER_ID\"}},\"returntype\": \"topn(100)\",\"configuration\": {\"topn.encoding.KYLIN_SALES.SELLER_ID\": \"dict\",\"topn.encoding_version.KYLIN_SALES.SELLER_ID\": \"1\"}}}],\"rowkey\": {\"rowkey_columns\": [{\"column\": \"KYLIN_SALES.BUYER_ID\",\"encoding\": \"integer:4\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.SELLER_ID\",\"encoding\": \"integer:4\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.TRANS_ID\",\"encoding\": \"integer:4\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.PART_DT\",\"encoding\": \"date\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.LEAF_CATEG_ID\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"BUYER_ACCOUNT.ACCOUNT_COUNTRY\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"SELLER_ACCOUNT.ACCOUNT_COUNTRY\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"BUYER_COUNTRY.NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"SELLER_COUNTRY.NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.LSTG_FORMAT_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.LSTG_SITE_ID\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.OPS_USER_ID\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.OPS_REGION\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false}]},\"hbase_mapping\": {\"column_family\": [{\"name\": \"F1\",\"columns\": [{\"qualifier\": \"M\",\"measure_refs\": [\"GMV_SUM\",\"BUYER_LEVEL_SUM\",\"SELLER_LEVEL_SUM\",\"TRANS_CNT\"]}]},{\"name\": \"F2\",\"columns\": [{\"qualifier\": \"M\",\"measure_refs\": [\"SELLER_CNT_HLL\",\"TOP_SELLER\"]}]}]},\"aggregation_groups\": [{\"includes\": [\"KYLIN_SALES.PART_DT\",\"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\",\"KYLIN_SALES.LEAF_CATEG_ID\",\"KYLIN_SALES.LSTG_FORMAT_NAME\",\"KYLIN_SALES.LSTG_SITE_ID\",\"KYLIN_SALES.OPS_USER_ID\",\"KYLIN_SALES.OPS_REGION\",\"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\",\"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\",\"BUYER_ACCOUNT.ACCOUNT_COUNTRY\",\"SELLER_ACCOUNT.ACCOUNT_COUNTRY\",\"BUYER_COUNTRY.NAME\",\"SELLER_COUNTRY.NAME\"],\"select_rule\": {\"hierarchy_dims\": [[\"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\",\"KYLIN_SALES.LEAF_CATEG_ID\"]],\"mandatory_dims\": [\"KYLIN_SALES.PART_DT\"],\"joint_dims\": [[\"BUYER_ACCOUNT.ACCOUNT_COUNTRY\",\"BUYER_COUNTRY.NAME\"],[\"SELLER_ACCOUNT.ACCOUNT_COUNTRY\",\"SELLER_COUNTRY.NAME\"],[\"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\",\"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\"],[\"KYLIN_SALES.LSTG_FORMAT_NAME\",\"KYLIN_SALES.LSTG_SITE_ID\"],[\"KYLIN_SALES.OPS_USER_ID\",\"KYLIN_SALES.OPS_REGION\"]]}}],\"signature\": null,\"notify_list\": [],\"status_need_notify\": [],\"partition_date_start\": 1325376000000,\"partition_date_end\": 3153600000000,\"auto_merge_time_ranges\": [],\"volatile_range\": 0,\"retention_range\": 0,\"engine_type\": 2,\"storage_type\": 2,\"override_kylin_properties\": {\"kylin.cube.aggrgroup.is-mandatory-only-valid\": \"true\",\"kylin.engine.spark.rdd-partition-cut-mb\": \"500\"},\"cuboid_black_list\": [],\"parent_forward\": 3,\"mandatory_dimension_set_list\": [],\"snapshot_table_desc_list\": []}",
"cubeName":"kylin_test_cube",
"project":"learn_kylin"
}
Response Sample
{
"uuid": "7b3faf69-eca8-cc5f-25f9-49b0f0b5d404",
"cubeName": "kylin_test_cube",
"cubeDescData":"{\"uuid\": \"0ef9b7a8-3929-4dff-b59d-2100aadc8dbf\",\"last_modified\": 0,\"version\": \"3.0.0.20500\",\"name\": \"kylin_test_cube\",\"is_draft\": false,\"model_name\": \"kylin_sales_model\",\"description\": \"\",\"null_string\": null,\"dimensions\": [{\"name\": \"TRANS_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"TRANS_ID\",\"derived\": null},{\"name\": \"YEAR_BEG_DT\",\"table\": \"KYLIN_CAL_DT\",\"column\": null,\"derived\": [\"YEAR_BEG_DT\"]},{\"name\": \"MONTH_BEG_DT\",\"table\": \"KYLIN_CAL_DT\",\"column\": null,\"derived\": [\"MONTH_BEG_DT\"]},{\"name\": \"WEEK_BEG_DT\",\"table\": \"KYLIN_CAL_DT\",\"column\": null,\"derived\": [\"WEEK_BEG_DT\"]},{\"name\": \"USER_DEFINED_FIELD1\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": null,\"derived\": [\"USER_DEFINED_FIELD1\"]},{\"name\": \"USER_DEFINED_FIELD3\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": null,\"derived\": [\"USER_DEFINED_FIELD3\"]},{\"name\": \"META_CATEG_NAME\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": \"META_CATEG_NAME\",\"derived\": null},{\"name\": \"CATEG_LVL2_NAME\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": \"CATEG_LVL2_NAME\",\"derived\": null},{\"name\": \"CATEG_LVL3_NAME\",\"table\": \"KYLIN_CATEGORY_GROUPINGS\",\"column\": \"CATEG_LVL3_NAME\",\"derived\": null},{\"name\": \"LSTG_FORMAT_NAME\",\"table\": \"KYLIN_SALES\",\"column\": \"LSTG_FORMAT_NAME\",\"derived\": null},{\"name\": \"SELLER_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"SELLER_ID\",\"derived\": null},{\"name\": \"BUYER_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"BUYER_ID\",\"derived\": null},{\"name\": \"ACCOUNT_BUYER_LEVEL\",\"table\": \"BUYER_ACCOUNT\",\"column\": \"ACCOUNT_BUYER_LEVEL\",\"derived\": null},{\"name\": \"ACCOUNT_SELLER_LEVEL\",\"table\": \"SELLER_ACCOUNT\",\"column\": \"ACCOUNT_SELLER_LEVEL\",\"derived\": null},{\"name\": \"BUYER_COUNTRY\",\"table\": \"BUYER_ACCOUNT\",\"column\": \"ACCOUNT_COUNTRY\",\"derived\": null},{\"name\": \"SELLER_COUNTRY\",\"table\": \"SELLER_ACCOUNT\",\"column\": \"ACCOUNT_COUNTRY\",\"derived\": null},{\"name\": \"BUYER_COUNTRY_NAME\",\"table\": \"BUYER_COUNTRY\",\"column\": \"NAME\",\"derived\": null},{\"name\": \"SELLER_COUNTRY_NAME\",\"table\": \"SELLER_COUNTRY\",\"column\": \"NAME\",\"derived\": null},{\"name\": \"OPS_USER_ID\",\"table\": \"KYLIN_SALES\",\"column\": \"OPS_USER_ID\",\"derived\": null},{\"name\": \"OPS_REGION\",\"table\": \"KYLIN_SALES\",\"column\": \"OPS_REGION\",\"derived\": null}],\"measures\": [{\"name\": \"GMV_SUM\",\"function\": {\"expression\": \"SUM\",\"parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.PRICE\"},\"returntype\": \"decimal(19,4)\"}},{\"name\": \"BUYER_LEVEL_SUM\",\"function\": {\"expression\": \"SUM\",\"parameter\": {\"type\": \"column\",\"value\": \"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\"},\"returntype\": \"bigint\"}},{\"name\": \"SELLER_LEVEL_SUM\",\"function\": {\"expression\": \"SUM\",\"parameter\": {\"type\": \"column\",\"value\": \"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\"},\"returntype\": \"bigint\"}},{\"name\": \"TRANS_CNT\",\"function\": {\"expression\": \"COUNT\",\"parameter\": {\"type\": \"constant\",\"value\": \"1\"},\"returntype\": \"bigint\"}},{\"name\": \"SELLER_CNT_HLL\",\"function\": {\"expression\": \"COUNT_DISTINCT\",\"parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.SELLER_ID\"},\"returntype\": \"hllc(10)\"}},{\"name\": \"TOP_SELLER\",\"function\": {\"expression\": \"TOP_N\",\"parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.PRICE\",\"next_parameter\": {\"type\": \"column\",\"value\": \"KYLIN_SALES.SELLER_ID\"}},\"returntype\": \"topn(100)\",\"configuration\": {\"topn.encoding.KYLIN_SALES.SELLER_ID\": \"dict\",\"topn.encoding_version.KYLIN_SALES.SELLER_ID\": \"1\"}}}],\"rowkey\": {\"rowkey_columns\": [{\"column\": \"KYLIN_SALES.BUYER_ID\",\"encoding\": \"integer:4\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.SELLER_ID\",\"encoding\": \"integer:4\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.TRANS_ID\",\"encoding\": \"integer:4\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.PART_DT\",\"encoding\": \"date\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.LEAF_CATEG_ID\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"BUYER_ACCOUNT.ACCOUNT_COUNTRY\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"SELLER_ACCOUNT.ACCOUNT_COUNTRY\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"BUYER_COUNTRY.NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"SELLER_COUNTRY.NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.LSTG_FORMAT_NAME\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.LSTG_SITE_ID\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.OPS_USER_ID\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false},{\"column\": \"KYLIN_SALES.OPS_REGION\",\"encoding\": \"dict\",\"encoding_version\": 1,\"isShardBy\": false}]},\"hbase_mapping\": {\"column_family\": [{\"name\": \"F1\",\"columns\": [{\"qualifier\": \"M\",\"measure_refs\": [\"GMV_SUM\",\"BUYER_LEVEL_SUM\",\"SELLER_LEVEL_SUM\",\"TRANS_CNT\"]}]},{\"name\": \"F2\",\"columns\": [{\"qualifier\": \"M\",\"measure_refs\": [\"SELLER_CNT_HLL\",\"TOP_SELLER\"]}]}]},\"aggregation_groups\": [{\"includes\": [\"KYLIN_SALES.PART_DT\",\"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\",\"KYLIN_SALES.LEAF_CATEG_ID\",\"KYLIN_SALES.LSTG_FORMAT_NAME\",\"KYLIN_SALES.LSTG_SITE_ID\",\"KYLIN_SALES.OPS_USER_ID\",\"KYLIN_SALES.OPS_REGION\",\"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\",\"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\",\"BUYER_ACCOUNT.ACCOUNT_COUNTRY\",\"SELLER_ACCOUNT.ACCOUNT_COUNTRY\",\"BUYER_COUNTRY.NAME\",\"SELLER_COUNTRY.NAME\"],\"select_rule\": {\"hierarchy_dims\": [[\"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\",\"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\",\"KYLIN_SALES.LEAF_CATEG_ID\"]],\"mandatory_dims\": [\"KYLIN_SALES.PART_DT\"],\"joint_dims\": [[\"BUYER_ACCOUNT.ACCOUNT_COUNTRY\",\"BUYER_COUNTRY.NAME\"],[\"SELLER_ACCOUNT.ACCOUNT_COUNTRY\",\"SELLER_COUNTRY.NAME\"],[\"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL\",\"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL\"],[\"KYLIN_SALES.LSTG_FORMAT_NAME\",\"KYLIN_SALES.LSTG_SITE_ID\"],[\"KYLIN_SALES.OPS_USER_ID\",\"KYLIN_SALES.OPS_REGION\"]]}}],\"signature\": null,\"notify_list\": [],\"status_need_notify\": [],\"partition_date_start\": 1325376000000,\"partition_date_end\": 3153600000000,\"auto_merge_time_ranges\": [],\"volatile_range\": 0,\"retention_range\": 0,\"engine_type\": 2,\"storage_type\": 2,\"override_kylin_properties\": {\"kylin.cube.aggrgroup.is-mandatory-only-valid\": \"true\",\"kylin.engine.spark.rdd-partition-cut-mb\": \"500\"},\"cuboid_black_list\": [],\"parent_forward\": 3,\"mandatory_dimension_set_list\": [],\"snapshot_table_desc_list\": []}",
"streamingData": null,
"kafkaData": null,
"successful": true,
"message": null,
"project": "learn_kylin",
"streamingCube": null
}
Update Cube
PUT /kylin/api/cubes
Request Body
(Same as "Create Cube")
Request Sample
(Same as "Create Cube")
Response Sample
(Same as "Create Cube")
List cubes
GET /kylin/api/cubes
Request Parameters
- offset -
required
int
Offset used by pagination - limit -
required
int
Cubes per page. - cubeName -
optional
string
Keyword for cube names. To find cubes whose name contains this keyword. - projectName -
optional
string
Project name.
Response Sample
[
{
"uuid":"1eaca32a-a33e-4b69-83dd-0bb8b1f8c53b",
"last_modified":1407831634847,
"name":"test_kylin_cube_with_slr_empty",
"owner":null,
"version":null,
"descriptor":"test_kylin_cube_with_slr_desc",
"cost":50,
"status":"DISABLED",
"segments":[
],
"create_time":null,
"source_records_count":0,
"source_records_size":0,
"size_kb":0
}
]
Get cube
GET /kylin/api/cubes/{cubeName}
Path Variable
- cubeName -
required
string
Cube name to find.
Get cube descriptor
GET /kylin/api/cube_desc/{cubeName}
Get descriptor for specified cube instance.
Path Variable
- cubeName -
required
string
Cube name.
Response Sample
[
{
"uuid": "0ef9b7a8-3929-4dff-b59d-2100aadc8dbf",
"last_modified": 1574402902000,
"version": "3.0.0.20500",
"name": "kylin_sales_cube",
"is_draft": false,
"model_name": "kylin_sales_model",
"description": "",
"null_string": null,
"dimensions": [
{
"name": "TRANS_ID",
"table": "KYLIN_SALES",
"column": "TRANS_ID",
"derived": null
},
{
"name": "YEAR_BEG_DT",
"table": "KYLIN_CAL_DT",
"column": null,
"derived": [
"YEAR_BEG_DT"
]
},
{
"name": "MONTH_BEG_DT",
"table": "KYLIN_CAL_DT",
"column": null,
"derived": [
"MONTH_BEG_DT"
]
},
{
"name": "WEEK_BEG_DT",
"table": "KYLIN_CAL_DT",
"column": null,
"derived": [
"WEEK_BEG_DT"
]
},
{
"name": "USER_DEFINED_FIELD1",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": null,
"derived": [
"USER_DEFINED_FIELD1"
]
},
{
"name": "USER_DEFINED_FIELD3",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": null,
"derived": [
"USER_DEFINED_FIELD3"
]
},
{
"name": "META_CATEG_NAME",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": "META_CATEG_NAME",
"derived": null
},
{
"name": "CATEG_LVL2_NAME",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": "CATEG_LVL2_NAME",
"derived": null
},
{
"name": "CATEG_LVL3_NAME",
"table": "KYLIN_CATEGORY_GROUPINGS",
"column": "CATEG_LVL3_NAME",
"derived": null
},
{
"name": "LSTG_FORMAT_NAME",
"table": "KYLIN_SALES",
"column": "LSTG_FORMAT_NAME",
"derived": null
},
{
"name": "SELLER_ID",
"table": "KYLIN_SALES",
"column": "SELLER_ID",
"derived": null
},
{
"name": "BUYER_ID",
"table": "KYLIN_SALES",
"column": "BUYER_ID",
"derived": null
},
{
"name": "ACCOUNT_BUYER_LEVEL",
"table": "BUYER_ACCOUNT",
"column": "ACCOUNT_BUYER_LEVEL",
"derived": null
},
{
"name": "ACCOUNT_SELLER_LEVEL",
"table": "SELLER_ACCOUNT",
"column": "ACCOUNT_SELLER_LEVEL",
"derived": null
},
{
"name": "BUYER_COUNTRY",
"table": "BUYER_ACCOUNT",
"column": "ACCOUNT_COUNTRY",
"derived": null
},
{
"name": "SELLER_COUNTRY",
"table": "SELLER_ACCOUNT",
"column": "ACCOUNT_COUNTRY",
"derived": null
},
{
"name": "BUYER_COUNTRY_NAME",
"table": "BUYER_COUNTRY",
"column": "NAME",
"derived": null
},
{
"name": "SELLER_COUNTRY_NAME",
"table": "SELLER_COUNTRY",
"column": "NAME",
"derived": null
},
{
"name": "OPS_USER_ID",
"table": "KYLIN_SALES",
"column": "OPS_USER_ID",
"derived": null
},
{
"name": "OPS_REGION",
"table": "KYLIN_SALES",
"column": "OPS_REGION",
"derived": null
}
],
"measures": [
{
"name": "GMV_SUM",
"function": {
"expression": "SUM",
"parameter": {
"type": "column",
"value": "KYLIN_SALES.PRICE"
},
"returntype": "decimal(19,4)"
}
},
{
"name": "BUYER_LEVEL_SUM",
"function": {
"expression": "SUM",
"parameter": {
"type": "column",
"value": "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL"
},
"returntype": "bigint"
}
},
{
"name": "SELLER_LEVEL_SUM",
"function": {
"expression": "SUM",
"parameter": {
"type": "column",
"value": "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL"
},
"returntype": "bigint"
}
},
{
"name": "TRANS_CNT",
"function": {
"expression": "COUNT",
"parameter": {
"type": "constant",
"value": "1"
},
"returntype": "bigint"
}
},
{
"name": "SELLER_CNT_HLL",
"function": {
"expression": "COUNT_DISTINCT",
"parameter": {
"type": "column",
"value": "KYLIN_SALES.SELLER_ID"
},
"returntype": "hllc(10)"
}
},
{
"name": "TOP_SELLER",
"function": {
"expression": "TOP_N",
"parameter": {
"type": "column",
"value": "KYLIN_SALES.PRICE",
"next_parameter": {
"type": "column",
"value": "KYLIN_SALES.SELLER_ID"
}
},
"returntype": "topn(100)",
"configuration": {
"topn.encoding.KYLIN_SALES.SELLER_ID": "dict",
"topn.encoding_version.KYLIN_SALES.SELLER_ID": "1"
}
}
}
],
"rowkey": {
"rowkey_columns": [
{
"column": "KYLIN_SALES.BUYER_ID",
"encoding": "integer:4",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.SELLER_ID",
"encoding": "integer:4",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.TRANS_ID",
"encoding": "integer:4",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.PART_DT",
"encoding": "date",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.LEAF_CATEG_ID",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "BUYER_ACCOUNT.ACCOUNT_COUNTRY",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "SELLER_ACCOUNT.ACCOUNT_COUNTRY",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "BUYER_COUNTRY.NAME",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "SELLER_COUNTRY.NAME",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.LSTG_FORMAT_NAME",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.LSTG_SITE_ID",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.OPS_USER_ID",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
},
{
"column": "KYLIN_SALES.OPS_REGION",
"encoding": "dict",
"encoding_version": 1,
"isShardBy": false
}
]
},
"hbase_mapping": {
"column_family": [
{
"name": "F1",
"columns": [
{
"qualifier": "M",
"measure_refs": [
"GMV_SUM",
"BUYER_LEVEL_SUM",
"SELLER_LEVEL_SUM",
"TRANS_CNT"
]
}
]
},
{
"name": "F2",
"columns": [
{
"qualifier": "M",
"measure_refs": [
"SELLER_CNT_HLL",
"TOP_SELLER"
]
}
]
}
]
},
"aggregation_groups": [
{
"includes": [
"KYLIN_SALES.PART_DT",
"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME",
"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME",
"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME",
"KYLIN_SALES.LEAF_CATEG_ID",
"KYLIN_SALES.LSTG_FORMAT_NAME",
"KYLIN_SALES.LSTG_SITE_ID",
"KYLIN_SALES.OPS_USER_ID",
"KYLIN_SALES.OPS_REGION",
"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL",
"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL",
"BUYER_ACCOUNT.ACCOUNT_COUNTRY",
"SELLER_ACCOUNT.ACCOUNT_COUNTRY",
"BUYER_COUNTRY.NAME",
"SELLER_COUNTRY.NAME"
],
"select_rule": {
"hierarchy_dims": [
[
"KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME",
"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME",
"KYLIN_CATEGORY_GROUPINGS.CATEG_LVL3_NAME",
"KYLIN_SALES.LEAF_CATEG_ID"
]
],
"mandatory_dims": [
"KYLIN_SALES.PART_DT"
],
"joint_dims": [
[
"BUYER_ACCOUNT.ACCOUNT_COUNTRY",
"BUYER_COUNTRY.NAME"
],
[
"SELLER_ACCOUNT.ACCOUNT_COUNTRY",
"SELLER_COUNTRY.NAME"
],
[
"BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL",
"SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL"
],
[
"KYLIN_SALES.LSTG_FORMAT_NAME",
"KYLIN_SALES.LSTG_SITE_ID"
],
[
"KYLIN_SALES.OPS_USER_ID",
"KYLIN_SALES.OPS_REGION"
]
]
}
}
],
"signature": null,
"notify_list": [],
"status_need_notify": [],
"partition_date_start": 1325376000000,
"partition_date_end": 3153600000000,
"auto_merge_time_ranges": [],
"volatile_range": 0,
"retention_range": 0,
"engine_type": 2,
"storage_type": 2,
"override_kylin_properties": {
"kylin.cube.aggrgroup.is-mandatory-only-valid": "true",
"kylin.engine.spark.rdd-partition-cut-mb": "500"
},
"cuboid_black_list": [],
"parent_forward": 3,
"mandatory_dimension_set_list": [],
"snapshot_table_desc_list": []
}
]
Get data model
GET /kylin/api/model/{modelName}
Path Variable
- modelName -
required
string
Data model name, by default it should be the same with cube name.
Response Sample
{
"uuid": "ff527b94-f860-44c3-8452-93b17774c647",
"name": "test_kylin_with_slr_model_desc",
"lookups": [
{
"table": "EDW.TEST_CAL_DT",
"join": {
"type": "inner",
"primary_key": [
"CAL_DT"
],
"foreign_key": [
"CAL_DT"
]
}
},
{
"table": "DEFAULT.TEST_CATEGORY_GROUPINGS",
"join": {
"type": "inner",
"primary_key": [
"LEAF_CATEG_ID",
"SITE_ID"
],
"foreign_key": [
"LEAF_CATEG_ID",
"LSTG_SITE_ID"
]
}
}
],
"capacity": "MEDIUM",
"last_modified": 1442372116000,
"fact_table": "DEFAULT.TEST_KYLIN_FACT",
"filter_condition": null,
"partition_desc": {
"partition_date_column": "DEFAULT.TEST_KYLIN_FACT.CAL_DT",
"partition_date_start": 0,
"partition_date_format": "yyyy-MM-dd",
"partition_type": "APPEND",
"partition_condition_builder": "org.apache.kylin.metadata.model.PartitionDesc$DefaultPartitionConditionBuilder"
}
}
Build cube
PUT /kylin/api/cubes/{cubeName}/build