Model Import & Export
Reminders:
- Please read Access and Authentication REST API and understand how authentication works.
- On Curl command line, don't forget to quote the URL if it contains the special char
&.
Get Batch Exportable Modelsâ
-
GET http://host:port/kylin/api/metastore/previews/models?project=test&model_names=model1,model2 -
URL Parameters
project-requiredstring, project name.model_names-optionalarray[string], model's name, separated by commas.
-
HTTP Header
Accept: application/vnd.apache.kylin-v4-public+jsonAccept-Language: enContent-Type: application/json;charset=utf-8
-
Curl Request Example
curl --location --request GET 'http://host:port/kylin/api/metastore/previews/models?project=target_project&model_names=model_index' \
-H 'Accept: application/vnd.apache.kylin-v4-public+json' \
-H 'Accept-Language: en' \
-H 'Authorization: Basic QURNSU46S1lMSU4=' \
-H 'Content-Type: application/json;charset=utf-8' -
Response Example
- Field description
code-string, return code,000Means successful import,999Means import failed.data-json, return datauuid-stringuuid;name-stringmodel's name;status-stringmodel's status;has_recommendations-booleanwhether model has recommendations;has_override_props-booleanwhether model has override properties;has_multiple_partition_values-booleanwhether model has multiple columns;
{
"code": "000",
"data": [
{
"uuid": "10d5eb7c-d854-4f72-9e4b-9b1f3c65bcda",
"name": "model_index",
"status": "ONLINE",
"has_recommendations": true,
"has_override_props": true,
"has_multiple_partition_values": true,
"tables": [
{
"name": "SSB.P_LINEORDER",
"kind": "FACT"
},
{
"name": "SSB.CUSTOMER",
"kind": "LOOKUP"
}
]
}
],
"msg": ""
} - Field description
Model Metadata Exportâ
-
POST http://host:port/kylin/api/metastore/backup/models?project=test -
URL Parameters
project-requiredstring, project name.
-
HTTP Body: JSON Object
names-requiredarray[string], model name list.export_recommendations-optionalboolean, true/false, default value is false,whether export model's recommendations.export_over_props-optionalboolean, true/false, default value is false, whether export model's override props.export_multiple_partition_values-optionalboolean, true/false, default is false, whether export model's multiple partition values.
-
HTTP Header
Accept: application/vnd.apache.kylin-v4-public+jsonAccept-Language: enContent-Type: application/json;charset=utf-8
-
Curl Request Example
curl --remote-name --remote-header-name --location --request POST 'http://host:port/kylin/api/metastore/backup/models?project=original_project' \
-H 'Accept: application/vnd.apache.kylin-v4-public+json' \
-H 'Accept-Language: en' \
-H 'Content-Type: application/json;charset=utf-8' \
-H 'Authorization: Basic QURNSU46S1lMSU4=' \
--data '{
"names": [
"ssb_model"
],
"export_recommendations": true,
"export_over_props": true,
"export_multiple_partition_values": true
}' -
Response Example
return zip file on success
Note: The remote-header-name parameter is available in curl 7.20.0 and above
Model Metadata Import Validationâ
-
POST http://host:port/kylin/api/metastore/validation/models?project=test -
URL Parameters
project-requiredstring, project name.
-
HTTP Body: form-data
file-requiredMultipartFile, model metadata file.
-
HTTP Header
Accept: application/vnd.apache.kylin-v4-public+jsonAccept-Language: en
-
Curl Request Example
curl --location --request POST 'http://host:port/kylin/api/metastore/validation/models?project=original_project' \
-H 'Accept: application/vnd.apache.kylin-v4-public+json' \
-H 'Accept-Language: en' \
-H 'Authorization: Basic QURNSU46S1lMSU4=' \
--form 'file=@metadata.zip' -
Response Example
{
"code": "000",
"data": {
"models": {
"ssb_model": {
"differences": 3,
"missing_items": [],
"new_items": [],
"update_items": [],
"reduce_items": [
{
"reason": null,
"attributes": {
"name": "LO_SUPPLYCOST",
"alias_dot_column": "P_LINEORDER.LO_SUPPLYCOST"
},
"detail": "LO_SUPPLYCOST",
"type": "MODEL_DIMENSION",
"model_alias": "ssb_model",
"importable": true,
"creatable": true,
"overwritable": true
},
{
"reason": null,
"attributes": {
"col_orders": [
"P_LINEORDER.LO_CUSTKEY",
"P_LINEORDER.LO_DISCOUNT",
"P_LINEORDER.LO_LINENUMBER",
"P_LINEORDER.LO_ORDERDATE",
"P_LINEORDER.LO_ORDERKEY",
"P_LINEORDER.LO_PARTKEY",
"P_LINEORDER.LO_QUANTITY",
"P_LINEORDER.LO_SUPPKEY",
"P_LINEORDER.LO_SUPPLYCOST"
]
},
"detail": "20000050001",
"type": "WHITE_LIST_INDEX",
"model_alias": "ssb_model",
"importable": true,
"creatable": true,
"overwritable": true
},
{
"reason": null,
"attributes": {
"col_orders": [
"P_LINEORDER.LO_CUSTKEY",
"P_LINEORDER.LO_QUANTITY",
"P_LINEORDER.LO_SUPPKEY",
"LO_SUPPKEY_SUM",
"COUNT_ALL"
]
},
"detail": "180001",
"type": "WHITE_LIST_INDEX",
"model_alias": "ssb_model",
"importable": true,
"creatable": true,
"overwritable": true
}
],
"importable": true,
"overwritable": true,
"creatable": true
}
}
},
"msg": ""
}-
Field description
code-string, return code,000Means successful import,999Means import failed.data-json, return datamodels-array[object], validate information of each import modelkey-string, model's namedifferences-int, the total differences of model metadata between zip file and target modelmissing_items-array[object], table or table column is required but target project didn't havenew_items-array[object], the new items between import and target modelreduce_items-array[object], the reduced items between import and target modelupdate_items-array[object], the updated items between import and target modelhas_same_name-boolean, whether has same name modelimportable-boolean, whether the model can importoverwritable-boolean, whether the model can overwrite target modelcreatable-boolean, whether the model can create a new model
-
Model Metadata Importâ
-
POST http://host:port/kylin/api/metastore/import/models?project=test -
URL Parameters
project-requiredstring, project name.
-
HTTP Body: form-data
-
file-requiredMultipartFile, model metadata file. -
request-requiredMultipartFile, json file. file content is:{
"models":[
{
"original_name":"ssb_model",
"target_name":"ssb_model",
"import_type":"OVERWRITE"
}
]
}original_name-stringoriginal model's nametarget_name-stringtarget model's name, set value while import_type is NEWimport_type-stringoptional values areNEW,OVERWRITE,UN_IMPORT.NEWmeans create new model,OVERWRITEmeans overwrite existing model,UN_IMPORTmeans not import model.
-
-
HTTP Header
Accept: application/vnd.apache.kylin-v4-public+jsonAccept-Language: en
-
Curl Request Example
curl --location --request POST 'http://host:port/kylin/api/metastore/import/models?project=original_project' \
-H 'Accept: application/vnd.apache.kylin-v4-public+json' \
-H 'Accept-Language: en' \
-H 'Authorization: Basic QURNSU46S1lMSU4=' \
--form 'file=@metadata.zip;type=application/octet-stream' \
--form 'request=@request.json;type=application/json' -
Response Example
{
"code":"000",
"data":"",
"msg":""
}