Apache Kylin : Analytical Data Warehouse for Big Data

Page tree

Welcome to Kylin Wiki.

Query

POST /kylin/api/query

Request Body

Variable name

NecessaryTypeDescription
sqlyesstringThe text of sql statement
offsetnointQuery offset. If offset is set in sql, curIndex will be ignored
limitnointQuery limit. If limit is set in sql, perPage will be ignored
acceptPartialnoboolWhether accept a partial result or not, default be “false”. Set to “false” for production use
projectnostringProject to perform query. Default value is “DEFAULT”

Request Sample

Sample
{
    "sql":"select count(*) from kylin_sales",
    "offset":0,
    "limit":50000,
    "acceptPartial":false,
    "project":"learn_kylin"
}

Curl Example

curl -X POST -H "Authorization: Basic XXXXXXXXX" -H "Content-Type: application/json" 
-d '{ "sql":"select count(*) from kylin_sales", "project":"learn_kylin" }' http://localhost:7070/kylin/api/query

Response Body

Variable name

Description
columnMetasColumn metadata information of result set
resultsData set of result
cubeCube used for this query
affectedRowCountCount of affected row by this sql statement
isExceptionWhether this response is an exception
ExceptionMessageMessage content of the exception
DurationTime cost of this query
Partial

Whether the response is a partial result or not. Decided by acceptPartial of request

Response Sample

Sample
{
    "columnMetas": [
        {
            "isNullable": 0,
            "displaySize": 19,
            "label": "EXPR$0",
            "name": "EXPR$0",
            "schemaName": null,
            "catelogName": null,
            "tableName": null,
            "precision": 19,
            "scale": 0,
            "columnType": -5,
            "columnTypeName": "BIGINT",
            "autoIncrement": false,
            "caseSensitive": true,
            "searchable": false,
            "currency": false,
            "signed": true,
            "writable": false,
            "definitelyWritable": false,
            "readOnly": true
        }
    ],
    "results": [
        [
            "459"
        ]
    ],
    "cube": "CUBE[name=kylin_sales_cube]",
    "affectedRowCount": 0,
    "isException": false,
    "exceptionMessage": null,
    "duration": 2557,
    "totalScanCount": 0,
    "totalScanBytes": 0,
    "hitExceptionCache": false,
    "storageCacheUsed": false,
    "traceUrl": null,
    "partial": false,
    "pushDown": false
}

Prepare query

POST /kylin/api/query/prestate

Request Body

Variable name

NecessaryTypeDescription
sqlyesstringThe text of sql statement
offsetnointQuery offset. If offset is set in sql, curIndex will be ignored
limitnointQuery limit. If limit is set in sql, perPage will be ignored
acceptPartialnoboolWhether accept a partial result or not, default be “false”. Set to “false” for production use
projectnostringProject to perform query. Default value is “DEFAULT”

Request Sample

Sample
{
    "sql":"select count(*) from kylin_sales",
    "offset":0,
    "limit":50000,
    "acceptPartial":false,
    "project":"learn_kylin"
}
Save query
POST /kylin/api/saved_queries

Request Body

Variable name

NecessaryTypeDescription
sqlyesstringThe text of sql statement
nameyesstringSql name
projectyesstringProject to perform query
descriptionnoboolSql description

Request Sample

Sample
{
    "sql":"select count(*) from kylin_sales",
    "name":"test",
    "project":"learn_kylin"
}

Remove saved query

DELETE /kylin/api/saved_queries/{id}

Path Variable 

Variable name

NecessaryTypeDescription
idyesstringThe id of saved query you want to remove

Get saved queries

GET /kylin/api/saved_queries

Response Sample

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

Variable name

NecessaryTypeDescription
queryIdyesstring

The queryId of you want to stop. You can obtain it by Get running queries

List queryable tables

GET /kylin/api/tables_and_columns

Request Parameters

Variable name

NecessaryTypeDescription
projectyesstring

The project to load tables

Response Sample

Sample
[
    {
        "columns": [
            {
                "table_SCHEM": "DEFAULT",
                "table_NAME": "KYLIN_ACCOUNT",
                "column_NAME": "ACCOUNT_ID",
                "table_CAT": "defaultCatalog",
                "data_TYPE": -5,
                "type_NAME": "BIGINT",
                "column_SIZE": -1,
                "buffer_LENGTH": -1,
                "decimal_DIGITS": 0,
                "num_PREC_RADIX": 10,
                "nullable": 1,
                "remarks": null,
                "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": ""
            }
        ],
        "table_SCHEM": "DEFAULT",
        "table_NAME": "KYLIN_SALES",
        "table_TYPE": "TABLE",
        "type_SCHEM": null,
        "self_REFERENCING_COL_NAME": null,
        "ref_GENERATION": null,
        "type_CAT": null,
        "table_CAT": "defaultCatalog",
        "type_NAME": null,
        "remarks": null
    }
]


  • No labels