blob: 66445da70ca79ba1513b0179ba8a3684c11c8e8e [file] [log] [blame]
{
"info": {
"_postman_id": "3afd5132-1e4a-4052-8f0a-c594b73d61d2",
"name": "Griffin Service",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Basic",
"item": [
{
"name": "Get griffin version",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/version",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"version"
]
},
"description": "`GET /api/v1/version`"
},
"response": [
{
"name": "Get griffin version example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/version",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"version"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "plainText",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-length",
"value": "5",
"name": "content-length",
"description": "The length of the response body in octets (8-bit bytes)"
},
{
"key": "content-type",
"value": "text/plain;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Thu, 26 Oct 2017 05:45:09 GMT",
"name": "date",
"description": "The date and time that the message was sent"
}
],
"cookie": [],
"body": "0.1.0"
}
]
}
]
},
{
"name": "Measures",
"item": [
{
"name": "OrgnizationDimension",
"item": [
{
"name": "Get orgs for measure",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/org",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"org"
]
},
"description": "`GET /api/v1/org`"
},
"response": [
{
"name": "Get orgs for measure example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "http://localhost:8080/api/v1/org",
"protocol": "http",
"host": [
"localhost"
],
"port": "8080",
"path": [
"api",
"v1",
"org"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Wed, 25 Oct 2017 05:55:00 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[\"ebay\",\"test\",\"orgName\"]"
}
]
},
{
"name": "Get measure names by org",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/org/:org",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"org",
":org"
],
"variable": [
{
"key": "org",
"value": "test"
}
]
},
"description": "`GET /api/v1/org/{org}`\n#### Path Variable\n- org - `required` `String` organization name.\n\n#### Request Sample\n`/api/v1/org/test`"
},
"response": [
{
"name": "Get measure names by org example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/org/:org",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"org",
":org"
],
"variable": [
{
"key": "org",
"value": "test"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Thu, 26 Oct 2017 06:10:23 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[\"measure1\"]"
}
]
},
{
"name": "Get measure names group by org",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/org/measure/names",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"org",
"measure",
"names"
]
},
"description": "`GET /api/v1/orgWithMetricsName`"
},
"response": [
{
"name": "Get measure names group by org example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/org/measure/names",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"org",
"measure",
"names"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Mon, 30 Oct 2017 03:07:48 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"orgName\":[\"measureName_test_edit\",\"measureName_test_edit\",\"measureName1\"],\"test\":[\"measure1\"],\"ebay\":[\"new_measure_test_again\",\"third_measure\",\"fourth_measure\",\"fifth_measure\",\"third_measure\",\"measure\"]}"
}
]
}
],
"_postman_isSubFolder": true
},
{
"name": "Get measures",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures"
]
},
"description": "`GET /api/v1/measures`"
},
"response": [
{
"name": "Get measures example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures"
]
},
"description": "`GET /api/v1/measures`"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:39:06 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[{\"measure.type\":\"griffin\",\"id\":1,\"name\":\"profiling_measure\",\"owner\":\"test\",\"description\":\"measure description\",\"organization\":null,\"deleted\":false,\"dq.type\":\"profiling\",\"process.type\":\"batch\",\"rule.description\":{\"details\":[{\"name\":\"age\",\"infos\":\"Total Count,Average\"}]},\"data.sources\":[],\"evaluate.rule\":{\"id\":1,\"rules\":[{\"id\":1,\"rule\":\"source.desc=target.desc\",\"name\":\"rule_name\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"accuracy\",\"details\":{}}]},\"measure.type\":\"griffin\"},{\"measure.type\":\"griffin\",\"id\":2,\"name\":\"measre_predicate_hour\",\"owner\":\"test\",\"description\":null,\"organization\":null,\"deleted\":false,\"dq.type\":\"accuracy\",\"process.type\":\"batch\",\"data.sources\":[{\"id\":3,\"name\":\"target\",\"connectors\":[{\"id\":3,\"name\":\"target1517993710873\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[{\"id\":3,\"type\":\"file.exist\",\"config\":{\"root.path\":\"hdfs:///griffin/demo_src\",\"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"}}],\"data.unit\":\"1hour\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_tgt\",\"where\":\"dt=#YYYYMMdd# and hour=#HH#\"}}]}],\"evaluate.rule\":{\"id\":2,\"rules\":[{\"id\":2,\"rule\":\"source.id=target.id AND source.age=target.age AND source.desc=target.desc\",\"name\":\"accuracy\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"accuracy\"}]},\"measure.type\":\"griffin\"},{\"measure.type\":\"griffin\",\"id\":4,\"name\":\"measure_no_predicate_day\",\"owner\":\"test\",\"description\":null,\"organization\":null,\"deleted\":false,\"dq.type\":\"accuracy\",\"process.type\":\"batch\",\"data.sources\":[{\"id\":6,\"name\":\"source\",\"connectors\":[{\"id\":6,\"name\":\"source1517994133405\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[],\"data.unit\":\"1day\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_src\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]},{\"id\":7,\"name\":\"target\",\"connectors\":[{\"id\":7,\"name\":\"target1517994142573\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[],\"data.unit\":\"1day\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_tgt\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]}],\"evaluate.rule\":{\"id\":4,\"rules\":[{\"id\":4,\"rule\":\"source.age=target.age AND source.desc=target.desc\",\"name\":\"accuracy\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"accuracy\"}]},\"measure.type\":\"griffin\"},{\"measure.type\":\"griffin\",\"id\":5,\"name\":\"measureName_edit\",\"owner\":\"test\",\"description\":\"measure description\",\"organization\":\"orgName\",\"deleted\":false,\"dq.type\":\"accuracy\",\"process.type\":\"batch\",\"data.sources\":[{\"id\":1,\"name\":\"source\",\"connectors\":[{\"id\":1,\"name\":\"connector_name_source\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[{\"id\":1,\"type\":\"file.exist\",\"config\":{\"root.path\":\"hdfs:///griffin/demo_src\",\"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"}}],\"data.unit\":\"1h\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_src\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]},{\"id\":2,\"name\":\"target\",\"connectors\":[{\"id\":2,\"name\":\"connector_name_target\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[{\"id\":2,\"type\":\"file.exist\",\"config\":{\"root.path\":\"hdfs:///griffin/demo_src\",\"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"}}],\"data.unit\":\"1h\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_src\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]}],\"evaluate.rule\":{\"id\":1,\"rules\":[{\"id\":1,\"rule\":\"source.desc=target.desc\",\"name\":\"rule_name\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"accuracy\",\"details\":{}}]},\"measure.type\":\"griffin\"},{\"measure.type\":\"griffin\",\"id\":6,\"name\":\"demo_accu\",\"owner\":\"test\",\"description\":null,\"organization\":null,\"deleted\":false,\"dq.type\":\"accuracy\",\"process.type\":\"batch\",\"data.sources\":[{\"id\":10,\"name\":\"source\",\"connectors\":[{\"id\":10,\"name\":\"source1517994851468\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[],\"data.unit\":\"1day\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_src\"}}]},{\"id\":11,\"name\":\"target\",\"connectors\":[{\"id\":11,\"name\":\"target1517994856089\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[],\"data.unit\":\"1day\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_tgt\"}}]}],\"evaluate.rule\":{\"id\":6,\"rules\":[{\"id\":6,\"rule\":\"source.id=target.id\",\"name\":\"accuracy\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"accuracy\"}]},\"measure.type\":\"griffin\"},{\"measure.type\":\"griffin\",\"id\":7,\"name\":\"measure_profiling_test_json\",\"owner\":\"test\",\"description\":null,\"organization\":null,\"deleted\":false,\"dq.type\":\"profiling\",\"process.type\":\"batch\",\"rule.description\":{\"details\":[{\"name\":\"id\",\"infos\":\"Distinct Count,Null Count,Maximum\"},{\"name\":\"age\",\"infos\":\"Null Count,Average,Enum Detection Count\"},{\"name\":\"desc\",\"infos\":\"Total Count,Distinct Count,Enum Detection Count\"}]},\"data.sources\":[{\"id\":12,\"name\":\"source\",\"connectors\":[{\"id\":12,\"name\":\"source1517995221483\",\"type\":\"hive\",\"version\":\"1.2\",\"predicates\":[],\"data.unit\":\"1hour\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_src\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]}],\"evaluate.rule\":{\"id\":7,\"rules\":[{\"id\":7,\"rule\":\"count(source.`id`) AS `id-nullcount` WHERE source.`id` IS NULL\",\"name\":\"id-nullct\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"profiling\",\"details\":{}},{\"id\":8,\"rule\":\"count(source.`age`) AS `age-nullcount` WHERE source.`age` IS NULL\",\"name\":\"age-nullct\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"profiling\",\"details\":{}},{\"id\":9,\"rule\":\"source.`age`,count(*) AS `age-grp` GROUP BY source.`age`\",\"name\":\"age-grp\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"profiling\",\"details\":{}},{\"id\":10,\"rule\":\"source.`desc`,count(*) AS `desc-grp` GROUP BY source.`desc`\",\"name\":\"desc-grp\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"profiling\",\"details\":{}},{\"id\":11,\"rule\":\"approx_count_distinct(source.`id`) AS `id-distcount`,max(source.`id`) AS `id-max`,avg(source.`age`) AS `age-average`,count(source.`desc`) AS `desc-count`,approx_count_distinct(source.`desc`) AS `desc-distcount`\",\"name\":\"profiling\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"profiling\",\"details\":{}}]},\"measure.type\":\"griffin\"}]"
}
]
},
{
"name": "Get measure by id",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures",
":id"
],
"variable": [
{
"key": "id",
"value": "4"
}
]
},
"description": "`GET /api/v1/measures/{id}`\n#### Path Variable\n- id -`required` `Long` measure id\n\n#### Request Sample\n\n`/api/v1/measures/1`"
},
"response": [
{
"name": "Get measure by id example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures",
":id"
],
"variable": [
{
"key": "id",
"value": "4"
}
]
},
"description": "`GET /api/v1/measures/{id}`\n#### Path Variable\n- id -`required` `Long` measure id\n\n#### Request Sample\n\n`/api/v1/measures/1`"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:47:06 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"measure.type\":\"griffin\",\"id\":4,\"name\":\"measure_no_predicate_day\",\"owner\":\"test\",\"description\":null,\"organization\":null,\"deleted\":false,\"dq.type\":\"accuracy\",\"process.type\":\"batch\",\"data.sources\":[{\"id\":6,\"name\":\"source\",\"connectors\":[{\"id\":6,\"name\":\"source1517994133405\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[],\"data.unit\":\"1day\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_src\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]},{\"id\":7,\"name\":\"target\",\"connectors\":[{\"id\":7,\"name\":\"target1517994142573\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[],\"data.unit\":\"1day\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_tgt\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]}],\"evaluate.rule\":{\"id\":4,\"rules\":[{\"id\":4,\"rule\":\"source.age=target.age AND source.desc=target.desc\",\"name\":\"accuracy\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"accuracy\"}]},\"measure.type\":\"griffin\"}"
}
]
},
{
"name": "Get measures by owner",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures/owner/:owner",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures",
"owner",
":owner"
],
"variable": [
{
"key": "owner",
"value": "test"
}
]
},
"description": "`GET /api/v1/measures/owner/{owner}`\n\n#### Path Variable\n- owner -`required` `String` owner name\n\n#### Request Sample\n\n`/api/v1/measures/owner/test`\n\n#### Response Body Sample\n```\n[\n {\n \"name\": \"demo-accu\",\n \"id\": \"2\"\n }\n]\n```"
},
"response": [
{
"name": "Get measures by owner example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures/owner/:owner",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures",
"owner",
":owner"
],
"variable": [
{
"key": "owner",
"value": "test"
}
]
},
"description": "`GET /api/v1/measures/owner/{owner}`\n\n#### Path Variable\n- owner -`required` `String` owner name\n\n#### Request Sample\n\n`/api/v1/measures/owner/test`\n\n#### Response Body Sample\n```\n[\n {\n \"name\": \"demo-accu\",\n \"id\": \"2\"\n }\n]\n```"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Thu, 26 Oct 2017 06:12:10 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[\n {\n \"measure.type\": \"griffin\",\n \"id\": 1,\n \"name\": \"measureName\",\n \"description\": \"measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"deleted\": false,\n \"dq.type\": \"accuracy\",\n \"process.type\": \"batch\",\n \"data.sources\": [\n {\n \"id\": 1,\n \"name\": \"source\",\n \"connectors\": [\n {\n \"id\": 1,\n \"name\": \"connector_name_source\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 1,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n },\n {\n \"id\": 2,\n \"name\": \"target\",\n \"connectors\": [\n {\n \"id\": 2,\n \"name\": \"connector_name_target\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 2,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n }\n ],\n \"evaluate.rule\": {\n \"id\": 1,\n \"rules\": [\n {\n \"id\": 1,\n \"rule\": \"source.desc=target.desc\",\n \"name\": \"rule_name\",\n \"description\": \"Total count\",\n \"dsl.type\": \"griffin-dsl\",\n \"dq.type\": \"accuracy\",\n \"details\": {}\n }\n ]\n }\n },\n {\n \"measure.type\": \"external\",\n \"id\": 2,\n \"name\": \"external_name\",\n \"description\": \" test measure\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"deleted\": false,\n \"metricName\": \"metricName\"\n }\n]"
}
]
},
{
"name": "Add measure",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\":\"accuracy_measure\",\n \"measure.type\":\"griffin\",\n \"dq.type\":\"ACCURACY\",\n \"process.type\":\"BATCH\",\n \"owner\":\"test\",\n \"description\":\"measure description\",\n \"data.sources\":[\n {\n \"name\":\"source\",\n \"connectors\":[\n {\n \"name\":\"connector_name_source\",\n \"type\":\"HIVE\",\n \"version\":\"1.2\",\n \"data.unit\":\"1hour\",\n \"data.time.zone\":\"UTC(WET,GMT)\",\n \"config\":{\n \"database\":\"default\",\n \"table.name\":\"demo_src\",\n \"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"\n },\n \"predicates\":[\n {\n \"type\":\"file.exist\",\n \"config\":{\n \"root.path\":\"hdfs:///griffin/demo_src\",\n \"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ]\n }\n ]\n },\n {\n \"name\":\"target\",\n \"connectors\":[\n {\n \"name\":\"connector_name_target\",\n \"type\":\"HIVE\",\n \"version\":\"1.2\",\n \"data.unit\":\"1hour\",\n \"data.time.zone\":\"UTC(WET,GMT)\",\n \"config\":{\n \"database\":\"default\",\n \"table.name\":\"demo_tgt\",\n \"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"\n },\n \"predicates\":[\n {\n \"type\":\"file.exist\",\n \"config\":{\n \"root.path\":\"hdfs:///griffin/demo_src\",\n \"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"evaluate.rule\":{\n \"rules\":[\n {\n \"dsl.type\":\"griffin-dsl\",\n \"dq.type\":\"ACCURACY\",\n \"name\":\"accuracy\",\n \"rule\":\"source.desc=target.desc\"\n }\n ]\n }\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures"
]
},
"description": "`POST /api/v1/measures`\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n#### Request Body\n\nname | description | type\n--- | --- | --- \nmeasure | measure entity | Measure\n\nThere are two kind of different measures, griffin measure and external measure. And for each type of measure, the 'dq.type' can be 'accuracy' or 'profiling'.\n\nYou can use the example in request body to create a griffin measure of accuracy.\n\nHere is a request body example of profiling:\n\n```\n{\n \"name\":\"profiling_measure\",\n \"measure.type\":\"griffin\",\n \"dq.type\":\"profiling\",\n \"rule.description\":{\n \"details\":[\n {\n \"name\":\"age\",\n \"infos\":\"Total Count,Average\"\n }\n ]\n },\n \"process.type\":\"batch\",\n \"owner\":\"test\",\n \"description\":\"measure description\",\n \"data.sources\":[\n {\n \"name\":\"source\",\n \"connectors\":[\n {\n \"name\":\"connector_name\",\n \"type\":\"hive\",\n \"version\":\"1.2\",\n \"data.unit\":\"1hour\",\n \"data.time.zone\":\"UTC(WET,GMT)\",\n \"config\":{\n \"database\":\"default\",\n \"table.name\":\"demo_src\",\n \"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"\n },\n \"predicates\":[\n {\n \"type\":\"file.exist\",\n \"config\":{\n \"root.path\":\"hdfs:///griffin/demo_src\",\n \"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"evaluate.rule\":{\n \"rules\":[\n {\n \"dsl.type\":\"griffin-dsl\",\n \"dq.type\":\"profiling\",\n \"rule\":\"count(source.`age`) AS `age-count`,avg(source.`age`) AS `age-average`\",\n \"name\":\"profiling\",\n \"details\":{\n\n }\n }\n ]\n }\n}\n```\n\nExample of request body to create external measure:\n\n```\n{\n \"name\": \"external_name\",\n \"measure.type\": \"external\",\n \"dq.type\": \"accuracy\",\n \"description\": \"measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"metricName\": \"metricName\"\n}\n```\n \n#### Response\n\nThe response body should be the created measure if success. For example:\n```\n{\n \"measure.type\": \"griffin\",\n \"id\": 1,\n \"name\": \"measureName\",\n \"description\": \"measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"deleted\": false,\n \"dq.type\": \"accuracy\",\n \"process.type\": \"batch\",\n \"data.sources\": [\n {\n \"id\": 1,\n \"name\": \"source\",\n \"connectors\": [\n {\n \"id\": 1,\n \"name\": \"connector_name_source\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 1,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n },\n {\n \"id\": 2,\n \"name\": \"target\",\n \"connectors\": [\n {\n \"id\": 2,\n \"name\": \"connector_name_target\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 2,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n }\n ],\n \"evaluate.rule\": {\n \"id\": 1,\n \"rules\": [\n {\n \"id\": 1,\n \"rule\": \"source.desc=target.desc\",\n \"name\": \"rule_name\",\n \"description\": \"Total count\",\n \"dsl.type\": \"griffin-dsl\",\n \"dq.type\": \"accuracy\",\n \"details\": {}\n }\n ]\n }\n}\n```\n\nIt may return failed messages. For example:\n\n```\n{\n \"timestamp\": 1517205933656,\n \"status\": 409,\n \"error\": \"Conflict\",\n \"code\": 40901,\n \"message\": \"Measure name already exists\",\n \"path\": \"/api/v1/measures\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Add measure example",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\":\"accuracy_measure\",\n \"measure.type\":\"griffin\",\n \"dq.type\":\"ACCURACY\",\n \"process.type\":\"BATCH\",\n \"owner\":\"test\",\n \"description\":\"measure description\",\n \"data.sources\":[\n {\n \"name\":\"source\",\n \"connectors\":[\n {\n \"name\":\"connector_name_source\",\n \"type\":\"HIVE\",\n \"version\":\"1.2\",\n \"data.unit\":\"1hour\",\n \"data.time.zone\":\"UTC(WET,GMT)\",\n \"config\":{\n \"database\":\"default\",\n \"table.name\":\"demo_src\",\n \"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"\n },\n \"predicates\":[\n {\n \"type\":\"file.exist\",\n \"config\":{\n \"root.path\":\"hdfs:///griffin/demo_src\",\n \"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ]\n }\n ]\n },\n {\n \"name\":\"target\",\n \"connectors\":[\n {\n \"name\":\"connector_name_target\",\n \"type\":\"HIVE\",\n \"version\":\"1.2\",\n \"data.unit\":\"1hour\",\n \"data.time.zone\":\"UTC(WET,GMT)\",\n \"config\":{\n \"database\":\"default\",\n \"table.name\":\"demo_tgt\",\n \"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"\n },\n \"predicates\":[\n {\n \"type\":\"file.exist\",\n \"config\":{\n \"root.path\":\"hdfs:///griffin/demo_src\",\n \"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"evaluate.rule\":{\n \"rules\":[\n {\n \"dsl.type\":\"griffin-dsl\",\n \"dq.type\":\"ACCURACY\",\n \"name\":\"accuracy\",\n \"rule\":\"source.desc=target.desc\"\n }\n ]\n }\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures"
]
},
"description": "`POST /api/v1/measures`\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n#### Request Body\n\nname | description | type\n--- | --- | --- \nmeasure | measure entity | Measure\n\nThere are two kind of different measures, griffin measure and external measure. And for each type of measure, the 'dq.type' can be 'accuracy' or 'profiling'.\n\nYou can use the example in request body to create a griffin measure of accuracy.\n\nHere is a request body example of profiling:\n\n```\n{\n \"name\":\"profiling_measure\",\n \"measure.type\":\"griffin\",\n \"dq.type\":\"profiling\",\n \"rule.description\":{\n \"details\":[\n {\n \"name\":\"age\",\n \"infos\":\"Total Count,Average\"\n }\n ]\n },\n \"process.type\":\"batch\",\n \"owner\":\"test\",\n \"description\":\"measure description\",\n \"data.sources\":[\n {\n \"name\":\"source\",\n \"connectors\":[\n {\n \"name\":\"connector_name\",\n \"type\":\"hive\",\n \"version\":\"1.2\",\n \"data.unit\":\"1hour\",\n \"data.time.zone\":\"UTC(WET,GMT)\",\n \"config\":{\n \"database\":\"default\",\n \"table.name\":\"demo_src\",\n \"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"\n },\n \"predicates\":[\n {\n \"type\":\"file.exist\",\n \"config\":{\n \"root.path\":\"hdfs:///griffin/demo_src\",\n \"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"evaluate.rule\":{\n \"rules\":[\n {\n \"dsl.type\":\"griffin-dsl\",\n \"dq.type\":\"profiling\",\n \"rule\":\"count(source.`age`) AS `age-count`,avg(source.`age`) AS `age-average`\",\n \"name\":\"profiling\",\n \"details\":{\n\n }\n }\n ]\n }\n}\n```\n\nExample of request body to create external measure:\n\n```\n{\n \"name\": \"external_name\",\n \"measure.type\": \"external\",\n \"dq.type\": \"accuracy\",\n \"description\": \"measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"metricName\": \"metricName\"\n}\n```\n \n#### Response\n\nThe response body should be the created measure if success. For example:\n```\n{\n \"measure.type\": \"griffin\",\n \"id\": 1,\n \"name\": \"measureName\",\n \"description\": \"measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"deleted\": false,\n \"dq.type\": \"accuracy\",\n \"process.type\": \"batch\",\n \"data.sources\": [\n {\n \"id\": 1,\n \"name\": \"source\",\n \"connectors\": [\n {\n \"id\": 1,\n \"name\": \"connector_name_source\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 1,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n },\n {\n \"id\": 2,\n \"name\": \"target\",\n \"connectors\": [\n {\n \"id\": 2,\n \"name\": \"connector_name_target\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 2,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n }\n ],\n \"evaluate.rule\": {\n \"id\": 1,\n \"rules\": [\n {\n \"id\": 1,\n \"rule\": \"source.desc=target.desc\",\n \"name\": \"rule_name\",\n \"description\": \"Total count\",\n \"dsl.type\": \"griffin-dsl\",\n \"dq.type\": \"accuracy\",\n \"details\": {}\n }\n ]\n }\n}\n```\n\nIt may return failed messages. For example:\n\n```\n{\n \"timestamp\": 1517205933656,\n \"status\": 409,\n \"error\": \"Conflict\",\n \"code\": 40901,\n \"message\": \"Measure name already exists\",\n \"path\": \"/api/v1/measures\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "Created",
"code": 201,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:06:14 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"measure.type\":\"griffin\",\"id\":5,\"name\":\"accuracy_measure\",\"owner\":\"test\",\"description\":\"measure description\",\"organization\":null,\"deleted\":false,\"dq.type\":\"accuracy\",\"process.type\":\"batch\",\"data.sources\":[{\"id\":8,\"name\":\"source\",\"connectors\":[{\"id\":8,\"name\":\"connector_name_source\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[{\"id\":4,\"type\":\"file.exist\",\"config\":{\"root.path\":\"hdfs:///griffin/demo_src\",\"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"}}],\"data.unit\":\"1hour\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_src\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]},{\"id\":9,\"name\":\"target\",\"connectors\":[{\"id\":9,\"name\":\"connector_name_target\",\"type\":\"HIVE\",\"version\":\"1.2\",\"predicates\":[{\"id\":5,\"type\":\"file.exist\",\"config\":{\"root.path\":\"hdfs:///griffin/demo_src\",\"path\":\"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"}}],\"data.unit\":\"1hour\",\"data.time.zone\":\"UTC(WET,GMT)\",\"config\":{\"database\":\"default\",\"table.name\":\"demo_tgt\",\"where\":\"dt=#YYYYMMdd# AND hour=#HH#\"}}]}],\"evaluate.rule\":{\"id\":5,\"rules\":[{\"id\":5,\"rule\":\"source.desc=target.desc\",\"name\":\"accuracy\",\"dsl.type\":\"griffin-dsl\",\"dq.type\":\"accuracy\"}]},\"measure.type\":\"griffin\"}"
}
]
},
{
"name": "Update measure",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"id\": 1,\n \"name\": \"measureName_edit\",\n \"description\": \"measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"deleted\": false,\n \"dq.type\": \"accuracy\",\n \"process.type\": \"batch\",\n \"data.sources\": [\n {\n \"id\": 1,\n \"name\": \"source\",\n \"connectors\": [\n {\n \"id\": 1,\n \"name\": \"connector_name_source\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 1,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n },\n {\n \"id\": 2,\n \"name\": \"target\",\n \"connectors\": [\n {\n \"id\": 2,\n \"name\": \"connector_name_target\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 2,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n }\n ],\n \"evaluate.rule\": {\n \"id\": 1,\n \"rules\": [\n {\n \"id\": 1,\n \"rule\": \"source.desc=target.desc\",\n \"name\": \"rule_name\",\n \"description\": \"Total count\",\n \"dsl.type\": \"griffin-dsl\",\n \"dq.type\": \"accuracy\",\n \"details\": {}\n }\n ]\n },\n \"measure.type\": \"griffin\"\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures"
]
},
"description": "`PUT /api/v1/measures`\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n#### Request Body\n\nname | description | type\n--- | --- | --- \nmeasure | measure entity | Measure\n\nThere are two kind of different measures, griffin measure and external measure. And for each type of measure, the 'dq.type' can be 'accuracy' or 'profiling'.\n\nYou can update an external measure by following request body example:\n\n```\n{\n\t\"id\":1,\n\t\"name\": \"external_name\",\n \"measure.type\": \"external\",\n \"dq.type\":\"profiling\",\n \"description\": \" updated measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"metricName\": \"metricName\"\n}\n```\n\n#### Response\n\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n\n```\n{\n \"timestamp\": 1517206892397,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40401,\n \"message\": \"Measure id does not exist\",\n \"path\": \"/api/v1/measures\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Update measure example",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"id\": 1,\n \"name\": \"measureName_edit\",\n \"description\": \"measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"deleted\": false,\n \"dq.type\": \"accuracy\",\n \"process.type\": \"batch\",\n \"data.sources\": [\n {\n \"id\": 1,\n \"name\": \"source\",\n \"connectors\": [\n {\n \"id\": 1,\n \"name\": \"connector_name_source\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 1,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n },\n {\n \"id\": 2,\n \"name\": \"target\",\n \"connectors\": [\n {\n \"id\": 2,\n \"name\": \"connector_name_target\",\n \"type\": \"HIVE\",\n \"version\": \"1.2\",\n \"predicates\": [\n {\n \"id\": 2,\n \"type\": \"file.exist\",\n \"config\": {\n \"root.path\": \"hdfs:///griffin/demo_src\",\n \"path\": \"/dt=#YYYYMMdd#/hour=#HH#/_DONE\"\n }\n }\n ],\n \"data.unit\": \"1h\",\n \"config\": {\n \"database\": \"default\",\n \"table.name\": \"demo_src\",\n \"where\": \"dt=#YYYYMMdd# AND hour=#HH#\"\n }\n }\n ]\n }\n ],\n \"evaluate.rule\": {\n \"id\": 1,\n \"rules\": [\n {\n \"id\": 1,\n \"rule\": \"source.desc=target.desc\",\n \"name\": \"rule_name\",\n \"description\": \"Total count\",\n \"dsl.type\": \"griffin-dsl\",\n \"dq.type\": \"accuracy\",\n \"details\": {}\n }\n ]\n },\n \"measure.type\": \"griffin\"\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures"
]
},
"description": "`PUT /api/v1/measures`\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n#### Request Body\n\nname | description | type\n--- | --- | --- \nmeasure | measure entity | Measure\n\nThere are two kind of different measures, griffin measure and external measure. And for each type of measure, the 'dq.type' can be 'accuracy' or 'profiling'.\n\nYou can update an external measure by following request body example:\n\n```\n{\n\t\"id\":1,\n\t\"name\": \"external_name\",\n \"measure.type\": \"external\",\n \"dq.type\":\"profiling\",\n \"description\": \" updated measure description\",\n \"organization\": \"orgName\",\n \"owner\": \"test\",\n \"metricName\": \"metricName\"\n}\n```\n\n#### Response\n\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n\n```\n{\n \"timestamp\": 1517206892397,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40401,\n \"message\": \"Measure id does not exist\",\n \"path\": \"/api/v1/measures\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "No Content",
"code": 204,
"_postman_previewlanguage": "plain",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:10:38 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
}
],
"cookie": [],
"body": ""
}
]
},
{
"name": "Delete measure",
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures/51",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures",
"51"
]
},
"description": "`DELETE /api/v1/measures/{id}`\n\nWhen deleting a measure,api will also delete related jobs.\n#### Path Variable\n- id -`required` `Long` measure id\n\n#### Request Sample\n\n`/api/v1/measures/1`\n\n#### Response\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n\n```\n{\n \"timestamp\": 1517207823871,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40401,\n \"message\": \"Measure id does not exist\",\n \"path\": \"/api/v1/measures/1\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status, and there may also be 'code' and 'message' fields, which will point out the cause. If an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Delete measure example",
"originalRequest": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/measures/1",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"measures",
"1"
]
},
"description": "`DELETE /api/v1/measures/{id}`\n\nWhen deleting a measure,api will also delete related jobs.\n#### Path Variable\n- id -`required` `Long` measure id\n\n#### Request Sample\n\n`/api/v1/measures/1`\n\n#### Response\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n\n```\n{\n \"timestamp\": 1517207823871,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40401,\n \"message\": \"Measure id does not exist\",\n \"path\": \"/api/v1/measures/1\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status, and there may also be 'code' and 'message' fields, which will point out the cause. If an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "No Content",
"code": 204,
"_postman_previewlanguage": "plain",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Date",
"value": "Mon, 29 Jan 2018 06:28:49 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
}
],
"cookie": [
{
"expires": "Invalid Date",
"httpOnly": true,
"domain": "localhost",
"path": "/",
"secure": false,
"value": "DC35BDC91FC450DE5D89D477E27FD19E",
"key": "JSESSIONID"
}
],
"body": ""
}
]
}
]
},
{
"name": "Jobs",
"item": [
{
"name": "Get jobs",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs"
]
},
"description": "`GET /api/v1/jobs`"
},
"response": [
{
"name": "Get jobs example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs"
]
},
"description": "`GET /api/v1/jobs`"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Tue, 24 Oct 2017 12:01:29 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[\n {\n \"jobId\": 1,\n \"jobName\": \"job_name\",\n \"measureId\": 2,\n \"triggerState\": \"NORMAL\",\n \"nextFireTime\": 1515400080000,\n \"previousFireTime\": 1515399840000,\n \"cronExpression\": \"0 0/4 * * * ?\"\n }\n]"
}
]
},
{
"name": "Get job schedule by job name",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/config/:jobName",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"config",
":jobName"
],
"variable": [
{
"key": "jobName",
"value": "job_no_predicate_day"
}
]
},
"description": "`GET /api/v1/jobs/config/{jobName}`\n\n#### Path Variable\n- jobName -`required` `String` job name\n\n#### Request Sample\n\n`/api/v1/jobs/config/job_no_predicate_day`"
},
"response": [
{
"name": "Get job schedule by job name example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/config/:jobName",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"config",
":jobName"
],
"variable": [
{
"key": "jobName",
"value": "job_no_predicate_day"
}
]
},
"description": "`GET /api/v1/jobs/config/{jobName}`\n\n#### Path Variable\n- jobName -`required` `String` job name\n\n#### Request Sample\n\n`/api/v1/jobs/config/job_no_predicate_day`"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Thu, 08 Feb 2018 05:32:02 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"id\":2,\"measure.id\":4,\"job.name\":\"job_no_predicate_day\",\"cron.expression\":\"0 0/4 * * * ?\",\"cron.time.zone\":\"GMT-8:00\",\"predicate.config\":{\"checkdonefile.schedule\":{\"repeat\":\"12\",\"interval\":\"5m\"}},\"data.segments\":[{\"id\":3,\"data.connector.name\":\"source1517994133405\",\"as.baseline\":true,\"segment.range\":{\"id\":3,\"begin\":\"-2\",\"length\":\"2\"}},{\"id\":4,\"data.connector.name\":\"target1517994142573\",\"as.baseline\":false,\"segment.range\":{\"id\":4,\"begin\":\"-5\",\"length\":\"2\"}}]}"
}
]
},
{
"name": "Get job instances",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/instances?jobId=2&page=0&size=10",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"instances"
],
"query": [
{
"key": "jobId",
"value": "2"
},
{
"key": "page",
"value": "0"
},
{
"key": "size",
"value": "10"
}
]
},
"description": "`GET /api/v1/jobs/instances`\n\nname | description | type | example value\n--- | --- | --- | ---\njobId | job id | Long | 1\npage | page you want starting from index 0 | int | 0\nsize | instance number per page | int | 10"
},
"response": [
{
"name": "Get job instances example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/instances?jobId=2&page=0&size=10",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"instances"
],
"query": [
{
"key": "jobId",
"value": "2"
},
{
"key": "page",
"value": "0"
},
{
"key": "size",
"value": "10"
}
]
},
"description": "`GET /api/v1/jobs/instances`\n\nname | description | type | example value\n--- | --- | --- | ---\njobId | job id | Long | 1\npage | page you want starting from index 0 | int | 0\nsize | instance number per page | int | 10"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Wed, 25 Oct 2017 01:43:23 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[\n {\n \"id\": 1,\n \"sessionId\": null,\n \"state\": \"success\",\n \"appId\": null,\n \"appUri\": null,\n \"predicateGroup\": \"PG\",\n \"predicateName\": \"job_name_predicate_1515399840077\",\n \"deleted\": true,\n \"timestamp\": 1515399840092,\n \"expireTimestamp\": 1516004640092\n },\n {\n \"id\": 2,\n \"sessionId\": null,\n \"state\": \"not_found\",\n \"appId\": null,\n \"appUri\": null,\n \"predicateGroup\": \"PG\",\n \"predicateName\": \"job_name_predicate_1515399840066\",\n \"deleted\": true,\n \"timestamp\": 1515399840067,\n \"expireTimestamp\": 1516004640067\n }\n]"
}
]
},
{
"name": "Get job healthy statistics",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/health",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"health"
]
},
"description": "`GET /api/v1/jobs/health`\n\n#### Response Body Sample\n```\n{\n \"job instance info\"\n}\n```"
},
"response": [
{
"name": "Get job healthy statistics example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/health",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"health"
]
},
"description": "`GET /api/v1/jobs/health`\n\n#### Response Body Sample\n```\n{\n \"job instance info\"\n}\n```"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Wed, 25 Oct 2017 08:10:53 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\n \"healthyJobCount\": 1,\n \"jobCount\": 2\n}"
}
]
},
{
"name": "Add job",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n \"measure.id\": 60,\r\n\t\"job.name\":\"job_name\",\r\n\t\"job.type\": \"batch\",\r\n \"cron.expression\": \"0 0/4 * * * ?\",\r\n \"cron.time.zone\": \"GMT+8:00\",\r\n \"predicate.config\": {\r\n\t\t\"checkdonefile.schedule\":{\r\n\t\t\t\"interval\": \"1m\",\r\n\t\t\t\"repeat\": 2\r\n\t\t}\r\n },\r\n \"data.segments\": [\r\n {\r\n \"data.connector.name\": \"connector_name_source\",\r\n\t\t\t\"as.baseline\":true, \r\n \"segment.range\": {\r\n \"begin\": \"-1h\",\r\n \"length\": \"1h\"\r\n }\r\n },\r\n {\r\n \"data.connector.name\": \"connector_name_target\",\r\n \"segment.range\": {\r\n \"begin\": \"-1h\",\r\n \"length\": \"1h\"\r\n }\r\n }\r\n ]\r\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs"
]
},
"description": "`POST /api/v1/jobs`\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n\n#### Request Body\nname | description | type \n--- | --- | ---\njobSchedule | custom class composed of job key parameters | JobSchedule \n\n\n#### Response\n\nThe response body should be the job schedule created if success. For example:\n```\n{\n \"id\": 3,\n \"measure.id\": 5,\n \"job.name\": \"job_name\",\n \"cron.expression\": \"0 0/4 * * * ?\",\n \"cron.time.zone\": \"GMT+8:00\",\n \"predicate.config\": {\n \"checkdonefile.schedule\": {\n \"interval\": \"1m\",\n \"repeat\": 2\n }\n },\n \"data.segments\": [\n {\n \"id\": 5,\n \"data.connector.name\": \"connector_name_source\",\n \"as.baseline\": true,\n \"segment.range\": {\n \"id\": 5,\n \"begin\": \"-1h\",\n \"length\": \"1h\"\n }\n },\n {\n \"id\": 6,\n \"data.connector.name\": \"connector_name_target\",\n \"as.baseline\": false,\n \"segment.range\": {\n \"id\": 6,\n \"begin\": \"-1h\",\n \"length\": \"1h\"\n }\n }\n ]\n}\n```\nIt may return failed messages. For example\n\n```\n{\n \"timestamp\": 1517208444322,\n \"status\": 400,\n \"error\": \"Bad Request\",\n \"code\": 40009,\n \"message\": \"Property 'measure.id' is invalid\",\n \"path\": \"/api/v1/jobs\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Add job example",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n \"measure.id\": 5,\r\n\t\"job.name\":\"job_name\",\r\n \"cron.expression\": \"0 0/4 * * * ?\",\r\n \"cron.time.zone\": \"GMT+8:00\",\r\n \"predicate.config\": {\r\n\t\t\"checkdonefile.schedule\":{\r\n\t\t\t\"interval\": \"1m\",\r\n\t\t\t\"repeat\": 2\r\n\t\t}\r\n },\r\n \"data.segments\": [\r\n {\r\n \"data.connector.name\": \"connector_name_source\",\r\n\t\t\t\"as.baseline\":true, \r\n \"segment.range\": {\r\n \"begin\": \"-1h\",\r\n \"length\": \"1h\"\r\n }\r\n },\r\n {\r\n \"data.connector.name\": \"connector_name_target\",\r\n \"segment.range\": {\r\n \"begin\": \"-1h\",\r\n \"length\": \"1h\"\r\n }\r\n }\r\n ]\r\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs"
]
},
"description": "`POST /api/v1/jobs`\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n\n#### Request Body\nname | description | type \n--- | --- | ---\njobSchedule | custom class composed of job key parameters | JobSchedule \n\n\n#### Response\n\nThe response body should be the job schedule created if success. For example:\n```\n{\n \"id\": 3,\n \"measure.id\": 5,\n \"job.name\": \"job_name\",\n \"cron.expression\": \"0 0/4 * * * ?\",\n \"cron.time.zone\": \"GMT+8:00\",\n \"predicate.config\": {\n \"checkdonefile.schedule\": {\n \"interval\": \"1m\",\n \"repeat\": 2\n }\n },\n \"data.segments\": [\n {\n \"id\": 5,\n \"data.connector.name\": \"connector_name_source\",\n \"as.baseline\": true,\n \"segment.range\": {\n \"id\": 5,\n \"begin\": \"-1h\",\n \"length\": \"1h\"\n }\n },\n {\n \"id\": 6,\n \"data.connector.name\": \"connector_name_target\",\n \"as.baseline\": false,\n \"segment.range\": {\n \"id\": 6,\n \"begin\": \"-1h\",\n \"length\": \"1h\"\n }\n }\n ]\n}\n```\nIt may return failed messages. For example\n\n```\n{\n \"timestamp\": 1517208444322,\n \"status\": 400,\n \"error\": \"Bad Request\",\n \"code\": 40009,\n \"message\": \"Property 'measure.id' is invalid\",\n \"path\": \"/api/v1/jobs\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "Created",
"code": 201,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:13:12 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"id\":3,\"measure.id\":5,\"job.name\":\"job_name\",\"cron.expression\":\"0 0/4 * * * ?\",\"cron.time.zone\":\"GMT+8:00\",\"predicate.config\":{\"checkdonefile.schedule\":{\"interval\":\"1m\",\"repeat\":2}},\"data.segments\":[{\"id\":5,\"data.connector.name\":\"connector_name_source\",\"as.baseline\":true,\"segment.range\":{\"id\":5,\"begin\":\"-1h\",\"length\":\"1h\"}},{\"id\":6,\"data.connector.name\":\"connector_name_target\",\"as.baseline\":false,\"segment.range\":{\"id\":6,\"begin\":\"-1h\",\"length\":\"1h\"}}]}"
}
]
},
{
"name": "Trigger job by id",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n\"timeout\": \"0\"\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/trigger/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"trigger",
":id"
],
"variable": [
{
"key": "id",
"value": ""
}
]
},
"description": "`POST /api/v1/jobs/trigger/{id}`\n\n#### Path Variable\n- id -`required` `Long` job id\n\n#### Response\nThe response body should be contains job instance fields if no error happens, and the HTTP status is (200, \"OK\").\n\nIt may return failed messages. For example\n```\n{\n \"timestamp\": 1517208792108,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40402,\n \"message\": \"Job id does not exist\",\n \"path\": \"/api/v1/jobs/trigger/2\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Trigger job by id example",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n\"timeout\": \"0\"\n}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/trigger/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"trigger",
":id"
],
"variable": [
{
"key": "id",
"value": ""
}
]
},
"description": "`POST /api/v1/jobs/trigger/{id}`\n\n#### Path Variable\n- id -`required` `Long` job id\n\n#### Response\nThe response body should be contains job instance fields if no error happens, and the HTTP status is (200, \"OK\").\n\nIt may return failed messages. For example\n```\n{\n \"timestamp\": 1517208792108,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40402,\n \"message\": \"Job id does not exist\",\n \"path\": \"/api/v1/jobs/trigger/2\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Wed, 25 Oct 2017 01:43:23 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\n \"id\": 1,\n \"sessionId\": null,\n \"state\": \"success\",\n \"appId\": null,\n \"appUri\": null,\n \"predicateGroup\": \"PG\",\n \"predicateName\": \"job_name_predicate_1515399840077\",\n \"deleted\": true,\n \"timestamp\": 1515399840092,\n \"expireTimestamp\": 1516004640092\n}"
}
]
},
{
"name": "Delete job by name",
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs?jobName=job_name",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs"
],
"query": [
{
"key": "jobName",
"value": "job_name"
}
]
},
"description": "`DELETE /api/v1/jobs`\n#### Request Parameters \n\nname | description | type | example value\n--- | --- | --- | ---\njobName | job name | String | job_name\n\n#### Response\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n```\n{\n \"timestamp\": 1517208660250,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40403,\n \"message\": \"Job name does not exist\",\n \"path\": \"/api/v1/jobs\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Delete job by name example",
"originalRequest": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs?jobName=job_name",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs"
],
"query": [
{
"key": "jobName",
"value": "job_name"
}
]
},
"description": "`DELETE /api/v1/jobs`\n#### Request Parameters \n\nname | description | type | example value\n--- | --- | --- | ---\njobName | job name | String | job_name\n\n#### Response\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n```\n{\n \"timestamp\": 1517208660250,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40403,\n \"message\": \"Job name does not exist\",\n \"path\": \"/api/v1/jobs\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "No Content",
"code": 204,
"_postman_previewlanguage": "plain",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Date",
"value": "Mon, 29 Jan 2018 06:50:06 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
}
],
"cookie": [
{
"expires": "Invalid Date",
"httpOnly": true,
"domain": "localhost",
"path": "/",
"secure": false,
"value": "DC35BDC91FC450DE5D89D477E27FD19E",
"key": "JSESSIONID"
}
],
"body": ""
}
]
},
{
"name": "Delete job by id",
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
":id"
],
"variable": [
{
"key": "id",
"value": "2"
}
]
},
"description": "`DELETE /api/v1/jobs/{id}`\n#### Path Variable\n- id -`required` `Long` job id\n\n#### Response\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n```\n{\n \"timestamp\": 1517208792108,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40402,\n \"message\": \"Job id does not exist\",\n \"path\": \"/api/v1/jobs/2\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Delete job by id example",
"originalRequest": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
":id"
],
"variable": [
{
"key": "id",
"value": "2"
}
]
},
"description": "`DELETE /api/v1/jobs/{id}`\n#### Path Variable\n- id -`required` `Long` job id\n\n#### Response\nThe response body should be empty if no error happens, and the HTTP status is (204, \"No Content\").\n\nIt may return failed messages. For example\n```\n{\n \"timestamp\": 1517208792108,\n \"status\": 404,\n \"error\": \"Not Found\",\n \"code\": 40402,\n \"message\": \"Job id does not exist\",\n \"path\": \"/api/v1/jobs/2\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "No Content",
"code": 204,
"_postman_previewlanguage": "plain",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Date",
"value": "Mon, 29 Jan 2018 06:52:14 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
}
],
"cookie": [
{
"expires": "Invalid Date",
"httpOnly": true,
"domain": "localhost",
"path": "/",
"secure": false,
"value": "DC35BDC91FC450DE5D89D477E27FD19E",
"key": "JSESSIONID"
}
],
"body": ""
}
]
},
{
"name": "Get Job Instance by Id",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/instances/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"instances",
":id"
],
"variable": [
{
"key": "id",
"value": "2"
}
]
},
"description": "`GET /api/v1/jobs/instances/{id}`\n\n#### Response Body Sample\n```\n{\n \"job instance info\"\n}\n```"
},
"response": [
{
"name": "Get Job Instance by Id",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/jobs/instances/:id",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"jobs",
"instances",
":id"
],
"variable": [
{
"key": "id",
"value": "2"
}
]
},
"description": "`GET /api/v1/jobs/instances/{id}`\n\n#### Response Body Sample\n```\n{\n \"job instance info\"\n}\n```"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"cookie": [],
"body": "{\n \"healthyJobCount\": 1,\n \"jobCount\": 2\n}"
}
]
}
]
},
{
"name": "Metrics",
"item": [
{
"name": "Get metrics",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics"
]
},
"description": "`GET /api/v1/metrics`\n\nGet all metrics that are computed by griffin jobs or subscribed by external measure."
},
"response": [
{
"name": "Get metrics example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics"
]
},
"description": "`GET /api/v1/metrics`\n\nGet all metrics that are computed by griffin jobs or subscribed by external measure."
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:11:57 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"measre_predicate_hour\":[{\"name\":\"job_predicate_hour\",\"type\":\"accuracy\",\"owner\":\"test\",\"metricValues\":[]}],\"measure_no_predicate_day\":[{\"name\":\"job_no_predicate_day\",\"type\":\"accuracy\",\"owner\":\"test\",\"metricValues\":[{\"name\":\"job_no_predicate_day\",\"tmst\":1517994480000,\"value\":{\"total\":125000,\"miss\":0,\"matched\":125000}},{\"name\":\"job_no_predicate_day\",\"tmst\":1517994240000,\"value\":{\"total\":125000,\"miss\":0,\"matched\":125000}}]}]}"
}
]
},
{
"name": "Get metric values by name",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values?metricName=job_no_predicate_day&size=5&offset=0",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values"
],
"query": [
{
"key": "metricName",
"value": "job_no_predicate_day"
},
{
"key": "size",
"value": "5"
},
{
"key": "offset",
"value": "0"
}
]
},
"description": "`GET /api/v1/metrics/values`\n\n#### Request Parameter\nname | description | type | example value\n--- | --- | --- | ---\nmetricName | name of the metric values | String | job_no_predicate_day\nsize | max amount of return records | int | 5\noffset | the amount of records to skip by timestamp in descending order | int | 0\ntmst | the start timestamp of records you want to get | long | 0\n\nParameter offset and tmst are optional."
},
"response": [
{
"name": "Get metric values by name example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values?metricName=job_no_predicate_day&size=5&offset=0",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values"
],
"query": [
{
"key": "metricName",
"value": "job_no_predicate_day"
},
{
"key": "size",
"value": "5"
},
{
"key": "offset",
"value": "0"
}
]
},
"description": "`GET /api/v1/metrics/values`\n\n#### Request Parameter\nname | description | type | example value\n--- | --- | --- | ---\nmetricName | name of the metric values | String | job_no_predicate_day\nsize | max amount of return records | int | 5\noffset | the amount of records to skip by timestamp in descending order | int | 0\ntmst | the start timestamp of records you want to get | long | 0\n\nParameter offset and tmst are optional."
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:16:51 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[{\"name\":\"job_no_predicate_day\",\"tmst\":1517994720000,\"value\":{\"total\":125000,\"miss\":0,\"matched\":125000}},{\"name\":\"job_no_predicate_day\",\"tmst\":1517994480000,\"value\":{\"total\":125000,\"miss\":0,\"matched\":125000}},{\"name\":\"job_no_predicate_day\",\"tmst\":1517994240000,\"value\":{\"total\":125000,\"miss\":0,\"matched\":125000}}]"
}
]
},
{
"name": "Add metric values",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "[\n\t{\n\t\t\"name\" : \"metricName\",\n\t\t\"tmst\" : 1509599811123,\n\t\t\"applicationId\" : \"app_1\",\n\t\t\"value\" : {\n\t\t\t\"__tmst\" : 1509599811123,\n\t\t\t\"miss\" : 11,\n\t\t\t\"total\" : 125000,\n\t\t\t\"matched\" : 124989\n\t\t}\n }\n]"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values"
]
},
"description": "`POST /api/v1/metrics/values`\n\nImport metric values into database of griffin.\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n#### Request Body\n\nname | description | type\n--- | --- | --- \nMetric Values | A list of metric values | MetricValue\n\n#### Response\n\nThe response body should have 'errors' field as 'false' if success, for example\n\n```\n{\n \"took\": 32,\n \"errors\": false,\n \"items\": [\n {\n \"index\": {\n \"_index\": \"griffin\",\n \"_type\": \"accuracy\",\n \"_id\": \"AWFAs5pOJwYEbKWP7mhq\",\n \"_version\": 1,\n \"result\": \"created\",\n \"_shards\": {\n \"total\": 2,\n \"successful\": 1,\n \"failed\": 0\n },\n \"created\": true,\n \"status\": 201\n }\n }\n ]\n}\n```\n\nIt may return failed message\n\n```\n{\n \"timestamp\": 1517209428969,\n \"status\": 500,\n \"error\": \"Internal Server Error\",\n \"message\": \"Failed to add metric values\",\n \"exception\": \"java.net.ConnectException\",\n \"path\": \"/api/v1/metrics/values\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Add metric values example",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "[\n\t{\n\t\t\"name\" : \"metricName\",\n\t\t\"tmst\" : 1509599811123,\n\t\t\"applicationId\" : \"app_1\",\n\t\t\"value\" : {\n\t\t\t\"__tmst\" : 1509599811123,\n\t\t\t\"miss\" : 11,\n\t\t\t\"total\" : 125000,\n\t\t\t\"matched\" : 124989\n\t\t}\n }\n]"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values"
]
},
"description": "`POST /api/v1/metrics/values`\n\nImport metric values into database of griffin.\n\n#### Request Header\nkey | value\n--- | ---\nContent-Type | application/json\n\n#### Request Body\n\nname | description | type\n--- | --- | --- \nMetric Values | A list of metric values | MetricValue\n\n#### Response\n\nThe response body should have 'errors' field as 'false' if success, for example\n\n```\n{\n \"took\": 32,\n \"errors\": false,\n \"items\": [\n {\n \"index\": {\n \"_index\": \"griffin\",\n \"_type\": \"accuracy\",\n \"_id\": \"AWFAs5pOJwYEbKWP7mhq\",\n \"_version\": 1,\n \"result\": \"created\",\n \"_shards\": {\n \"total\": 2,\n \"successful\": 1,\n \"failed\": 0\n },\n \"created\": true,\n \"status\": 201\n }\n }\n ]\n}\n```\n\nIt may return failed message\n\n```\n{\n \"timestamp\": 1517209428969,\n \"status\": 500,\n \"error\": \"Internal Server Error\",\n \"message\": \"Failed to add metric values\",\n \"exception\": \"java.net.ConnectException\",\n \"path\": \"/api/v1/metrics/values\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Length",
"value": "223",
"name": "Content-Length",
"description": "The length of the response body in octets (8-bit bytes)"
},
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Mon, 29 Jan 2018 06:56:07 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
}
],
"cookie": [
{
"expires": "Invalid Date",
"httpOnly": true,
"domain": "localhost",
"path": "/",
"secure": false,
"value": "DC35BDC91FC450DE5D89D477E27FD19E",
"key": "JSESSIONID"
}
],
"body": "{\"took\":32,\"errors\":false,\"items\":[{\"index\":{\"_index\":\"griffin\",\"_type\":\"accuracy\",\"_id\":\"AWFAs5pOJwYEbKWP7mhq\",\"_version\":1,\"result\":\"created\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0},\"created\":true,\"status\":201}}]}"
}
]
},
{
"name": "Delete metric values by name",
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values?metricName=metricName",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values"
],
"query": [
{
"key": "metricName",
"value": "metricName"
}
]
},
"description": "`DELETE /api/v1/metrics/values`\n#### Request Parameters \n\nname | description | type | example value\n--- | --- | --- | ---\nmetricName | name of the metric values | String | metricName\n\n#### Response\nThe response body should have 'failures' field as empty if success, for example\n```\n{\n \"took\": 363,\n \"timed_out\": false,\n \"total\": 5,\n \"deleted\": 5,\n \"batches\": 1,\n \"version_conflicts\": 0,\n \"noops\": 0,\n \"retries\": {\n \"bulk\": 0,\n \"search\": 0\n },\n \"throttled_millis\": 0,\n \"requests_per_second\": -1,\n \"throttled_until_millis\": 0,\n \"failures\": []\n}\n```\nIt may return failed messages, for example\n```\n{\n \"timestamp\": 1517209504487,\n \"status\": 500,\n \"error\": \"Internal Server Error\",\n \"message\": \"Failed to delete metric values.\",\n \"exception\": \"java.net.ConnectException\",\n \"path\": \"/api/v1/metrics/values\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"response": [
{
"name": "Delete metric values by name example",
"originalRequest": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values?metricName=metricName",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values"
],
"query": [
{
"key": "metricName",
"value": "metricName"
}
]
},
"description": "`DELETE /api/v1/metrics/values`\n#### Request Parameters \n\nname | description | type | example value\n--- | --- | --- | ---\nmetricName | name of the metric values | String | metricName\n\n#### Response\nThe response body should have 'failures' field as empty if success, for example\n```\n{\n \"took\": 363,\n \"timed_out\": false,\n \"total\": 5,\n \"deleted\": 5,\n \"batches\": 1,\n \"version_conflicts\": 0,\n \"noops\": 0,\n \"retries\": {\n \"bulk\": 0,\n \"search\": 0\n },\n \"throttled_millis\": 0,\n \"requests_per_second\": -1,\n \"throttled_until_millis\": 0,\n \"failures\": []\n}\n```\nIt may return failed messages, for example\n```\n{\n \"timestamp\": 1517209504487,\n \"status\": 500,\n \"error\": \"Internal Server Error\",\n \"message\": \"Failed to delete metric values.\",\n \"exception\": \"java.net.ConnectException\",\n \"path\": \"/api/v1/metrics/values\"\n}\n```\nThere will be 'status' and 'error' fields in response if error happens, which correspond to HTTP status.\n\nThere may also be 'code' and 'message' fields, which will point out the cause.\n\nIf an exception happens at server, there will be an 'exception' field, which is the name of exception."
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Length",
"value": "217",
"name": "Content-Length",
"description": "The length of the response body in octets (8-bit bytes)"
},
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Mon, 29 Jan 2018 07:06:30 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
}
],
"cookie": [
{
"expires": "Invalid Date",
"httpOnly": true,
"domain": "localhost",
"path": "/",
"secure": false,
"value": "DC35BDC91FC450DE5D89D477E27FD19E",
"key": "JSESSIONID"
}
],
"body": "{\"took\":363,\"timed_out\":false,\"total\":5,\"deleted\":5,\"batches\":1,\"version_conflicts\":0,\"noops\":0,\"retries\":{\"bulk\":0,\"search\":0},\"throttled_millis\":0,\"requests_per_second\":-1.0,\"throttled_until_millis\":0,\"failures\":[]}"
}
]
},
{
"name": "Get Metrics Value by Job Instance Id",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values/:jobInstanceId",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values",
":jobInstanceId"
],
"variable": [
{
"key": "jobInstanceId",
"value": "304"
}
]
},
"description": "`GET /api/v1/metrics/values/{jobInstanceId}`\n\n#### Response Body Sample\n```\n{\n \"metric value\"\n}\n```"
},
"response": [
{
"name": "Get Metrics Value by Job Instance Id",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metrics/values/:jobInstanceId",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metrics",
"values",
":jobInstanceId"
],
"variable": [
{
"key": "jobInstanceId",
"value": "304"
}
]
},
"description": "`GET /api/v1/metrics/values/{jobInstanceId}`\n\n#### Response Body Sample\n```\n{\n \"metric value\"\n}\n```"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"cookie": [],
"body": "{\n \"name\": some_job,\n \"tmst\": 1553526960000\n \"applicationId\": application_1549876136110_0237\n \"value\": {\n \"total\": 74}}"
}
]
}
]
},
{
"name": "Hive MetaStore",
"item": [
{
"name": "Get all database tables metadata",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/dbs/tables",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"dbs",
"tables"
]
},
"description": "`GET /api/v1/metadata/hive/dbs/tables`"
},
"response": [
{
"name": "Get all database tables metadata example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/dbs/tables",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"dbs",
"tables"
]
},
"description": "`GET /api/v1/metadata/hive/dbs/tables`"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:17:40 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"default\":[{\"tableName\":\"demo_src\",\"dbName\":\"default\",\"owner\":\"root\",\"createTime\":1517993141,\"lastAccessTime\":0,\"retention\":0,\"sd\":{\"cols\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"location\":\"hdfs://griffin:9000/griffin/data/batch/demo_src\",\"inputFormat\":\"org.apache.hadoop.mapred.TextInputFormat\",\"outputFormat\":\"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\",\"compressed\":false,\"numBuckets\":-1,\"serdeInfo\":{\"name\":null,\"serializationLib\":\"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\",\"parameters\":{\"field.delim\":\"|\",\"serialization.format\":\"|\"},\"setSerializationLib\":true,\"setName\":false,\"parametersSize\":2,\"setParameters\":true},\"bucketCols\":[],\"sortCols\":[],\"parameters\":{},\"skewedInfo\":{\"skewedColNames\":[],\"skewedColValues\":[],\"skewedColValueLocationMaps\":{},\"skewedColNamesSize\":0,\"skewedColNamesIterator\":[],\"setSkewedColNames\":true,\"skewedColValuesSize\":0,\"skewedColValuesIterator\":[],\"setSkewedColValues\":true,\"skewedColValueLocationMapsSize\":0,\"setSkewedColValueLocationMaps\":true},\"storedAsSubDirectories\":false,\"colsSize\":3,\"colsIterator\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setCols\":true,\"setLocation\":true,\"setInputFormat\":true,\"setOutputFormat\":true,\"setCompressed\":true,\"setNumBuckets\":true,\"setSerdeInfo\":true,\"bucketColsSize\":0,\"bucketColsIterator\":[],\"setBucketCols\":true,\"sortColsSize\":0,\"sortColsIterator\":[],\"setSortCols\":true,\"setSkewedInfo\":true,\"setStoredAsSubDirectories\":true,\"parametersSize\":0,\"setParameters\":true},\"partitionKeys\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"parameters\":{\"EXTERNAL\":\"TRUE\",\"transient_lastDdlTime\":\"1517993141\"},\"viewOriginalText\":null,\"viewExpandedText\":null,\"tableType\":\"EXTERNAL_TABLE\",\"privileges\":null,\"temporary\":false,\"partitionKeysSize\":2,\"setSd\":true,\"partitionKeysIterator\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setPartitionKeys\":true,\"parametersSize\":2,\"setParameters\":true,\"setViewOriginalText\":false,\"setViewExpandedText\":false,\"setTableType\":true,\"setPrivileges\":false,\"setTemporary\":false,\"setTableName\":true,\"setDbName\":true,\"setOwner\":true,\"setCreateTime\":true,\"setLastAccessTime\":true,\"setRetention\":true},{\"tableName\":\"demo_tgt\",\"dbName\":\"default\",\"owner\":\"root\",\"createTime\":1517993141,\"lastAccessTime\":0,\"retention\":0,\"sd\":{\"cols\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"location\":\"hdfs://griffin:9000/griffin/data/batch/demo_tgt\",\"inputFormat\":\"org.apache.hadoop.mapred.TextInputFormat\",\"outputFormat\":\"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\",\"compressed\":false,\"numBuckets\":-1,\"serdeInfo\":{\"name\":null,\"serializationLib\":\"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\",\"parameters\":{\"field.delim\":\"|\",\"serialization.format\":\"|\"},\"setSerializationLib\":true,\"setName\":false,\"parametersSize\":2,\"setParameters\":true},\"bucketCols\":[],\"sortCols\":[],\"parameters\":{},\"skewedInfo\":{\"skewedColNames\":[],\"skewedColValues\":[],\"skewedColValueLocationMaps\":{},\"skewedColNamesSize\":0,\"skewedColNamesIterator\":[],\"setSkewedColNames\":true,\"skewedColValuesSize\":0,\"skewedColValuesIterator\":[],\"setSkewedColValues\":true,\"skewedColValueLocationMapsSize\":0,\"setSkewedColValueLocationMaps\":true},\"storedAsSubDirectories\":false,\"colsSize\":3,\"colsIterator\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setCols\":true,\"setLocation\":true,\"setInputFormat\":true,\"setOutputFormat\":true,\"setCompressed\":true,\"setNumBuckets\":true,\"setSerdeInfo\":true,\"bucketColsSize\":0,\"bucketColsIterator\":[],\"setBucketCols\":true,\"sortColsSize\":0,\"sortColsIterator\":[],\"setSortCols\":true,\"setSkewedInfo\":true,\"setStoredAsSubDirectories\":true,\"parametersSize\":0,\"setParameters\":true},\"partitionKeys\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"parameters\":{\"EXTERNAL\":\"TRUE\",\"transient_lastDdlTime\":\"1517993141\"},\"viewOriginalText\":null,\"viewExpandedText\":null,\"tableType\":\"EXTERNAL_TABLE\",\"privileges\":null,\"temporary\":false,\"partitionKeysSize\":2,\"setSd\":true,\"partitionKeysIterator\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setPartitionKeys\":true,\"parametersSize\":2,\"setParameters\":true,\"setViewOriginalText\":false,\"setViewExpandedText\":false,\"setTableType\":true,\"setPrivileges\":false,\"setTemporary\":false,\"setTableName\":true,\"setDbName\":true,\"setOwner\":true,\"setCreateTime\":true,\"setLastAccessTime\":true,\"setRetention\":true}]}"
}
]
},
{
"name": "Get database names",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/dbs",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"dbs"
]
},
"description": "`GET /api/v1/metadata/hive/dbs`\n \n #### Get all database names"
},
"response": [
{
"name": "Get db names example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/dbs",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"dbs"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Wed, 25 Oct 2017 05:12:36 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[\"default\"]"
}
]
},
{
"name": "Get table names",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/tables/names?db=default",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"tables",
"names"
],
"query": [
{
"key": "db",
"value": "default"
}
]
},
"description": "`GET /api/v1/metadata/hive/tables/names`\n#### Request Parameter\nname | description | typ | example value\n--- | --- | --- | ---\ndb | hive database name | String | default"
},
"response": [
{
"name": "Get table names example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/tables/names?db=default",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"tables",
"names"
],
"query": [
{
"key": "db",
"value": "default"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Wed, 25 Oct 2017 05:11:54 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[\"demo_src\",\"demo_tgt\"]"
}
]
},
{
"name": "Get table metadata",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/table?db=default&table=demo_src",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"table"
],
"query": [
{
"key": "db",
"value": "default"
},
{
"key": "table",
"value": "demo_src"
}
]
},
"description": "`GET /api/v1/metadata/hive/table`\n#### Request Parameters\n name | description | type | example value \n---- | ---------- | ----- |-----\ndb | hive database name | String | default\ntable | hive table name | String | demo_src"
},
"response": [
{
"name": "Get table metadata example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/table?db=default&table=demo_src",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"table"
],
"query": [
{
"key": "db",
"value": "default"
},
{
"key": "table",
"value": "demo_src"
}
]
},
"description": "`GET /api/v1/metadata/hive/table`\n#### Request Parameters\n name | description | type | example value \n---- | ---------- | ----- |-----\ndb | hive database name | String | default\ntable | hive table name | String | demo_src"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:18:22 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"tableName\":\"demo_src\",\"dbName\":\"default\",\"owner\":\"root\",\"createTime\":1517993141,\"lastAccessTime\":0,\"retention\":0,\"sd\":{\"cols\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"location\":\"hdfs://griffin:9000/griffin/data/batch/demo_src\",\"inputFormat\":\"org.apache.hadoop.mapred.TextInputFormat\",\"outputFormat\":\"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\",\"compressed\":false,\"numBuckets\":-1,\"serdeInfo\":{\"name\":null,\"serializationLib\":\"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\",\"parameters\":{\"field.delim\":\"|\",\"serialization.format\":\"|\"},\"setSerializationLib\":true,\"setName\":false,\"parametersSize\":2,\"setParameters\":true},\"bucketCols\":[],\"sortCols\":[],\"parameters\":{},\"skewedInfo\":{\"skewedColNames\":[],\"skewedColValues\":[],\"skewedColValueLocationMaps\":{},\"skewedColNamesSize\":0,\"skewedColNamesIterator\":[],\"setSkewedColNames\":true,\"skewedColValuesSize\":0,\"skewedColValuesIterator\":[],\"setSkewedColValues\":true,\"skewedColValueLocationMapsSize\":0,\"setSkewedColValueLocationMaps\":true},\"storedAsSubDirectories\":false,\"colsSize\":3,\"colsIterator\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setCols\":true,\"setLocation\":true,\"setInputFormat\":true,\"setOutputFormat\":true,\"setCompressed\":true,\"setNumBuckets\":true,\"setSerdeInfo\":true,\"bucketColsSize\":0,\"bucketColsIterator\":[],\"setBucketCols\":true,\"sortColsSize\":0,\"sortColsIterator\":[],\"setSortCols\":true,\"setSkewedInfo\":true,\"setStoredAsSubDirectories\":true,\"parametersSize\":0,\"setParameters\":true},\"partitionKeys\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"parameters\":{\"EXTERNAL\":\"TRUE\",\"transient_lastDdlTime\":\"1517993141\"},\"viewOriginalText\":null,\"viewExpandedText\":null,\"tableType\":\"EXTERNAL_TABLE\",\"privileges\":null,\"temporary\":false,\"partitionKeysSize\":2,\"setSd\":true,\"partitionKeysIterator\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setPartitionKeys\":true,\"parametersSize\":2,\"setParameters\":true,\"setViewOriginalText\":false,\"setViewExpandedText\":false,\"setTableType\":true,\"setPrivileges\":false,\"setTemporary\":false,\"setTableName\":true,\"setDbName\":true,\"setOwner\":true,\"setCreateTime\":true,\"setLastAccessTime\":true,\"setRetention\":true}"
}
]
},
{
"name": "Get tables metadata",
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/tables?db=default",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"tables"
],
"query": [
{
"key": "db",
"value": "default"
}
]
},
"description": "`GET /api/v1/metadata/hive/tables`\n#### Request Parameter\nname | description | typ | example value\n--- | --- | --- | ---\ndb | hive database name | String | default"
},
"response": [
{
"name": "Get tables metadata example",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/metadata/hive/tables?db=default",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"metadata",
"hive",
"tables"
],
"query": [
{
"key": "db",
"value": "default"
}
]
},
"description": "`GET /api/v1/metadata/hive/tables`\n#### Request Parameter\nname | description | typ | example value\n--- | --- | --- | ---\ndb | hive database name | String | default"
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3600",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Wed, 07 Feb 2018 09:18:55 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "[{\"tableName\":\"demo_src\",\"dbName\":\"default\",\"owner\":\"root\",\"createTime\":1517993141,\"lastAccessTime\":0,\"retention\":0,\"sd\":{\"cols\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"location\":\"hdfs://griffin:9000/griffin/data/batch/demo_src\",\"inputFormat\":\"org.apache.hadoop.mapred.TextInputFormat\",\"outputFormat\":\"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\",\"compressed\":false,\"numBuckets\":-1,\"serdeInfo\":{\"name\":null,\"serializationLib\":\"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\",\"parameters\":{\"field.delim\":\"|\",\"serialization.format\":\"|\"},\"setSerializationLib\":true,\"setName\":false,\"parametersSize\":2,\"setParameters\":true},\"bucketCols\":[],\"sortCols\":[],\"parameters\":{},\"skewedInfo\":{\"skewedColNames\":[],\"skewedColValues\":[],\"skewedColValueLocationMaps\":{},\"skewedColNamesSize\":0,\"skewedColNamesIterator\":[],\"setSkewedColNames\":true,\"skewedColValuesSize\":0,\"skewedColValuesIterator\":[],\"setSkewedColValues\":true,\"skewedColValueLocationMapsSize\":0,\"setSkewedColValueLocationMaps\":true},\"storedAsSubDirectories\":false,\"colsSize\":3,\"colsIterator\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setCols\":true,\"setLocation\":true,\"setInputFormat\":true,\"setOutputFormat\":true,\"setCompressed\":true,\"setNumBuckets\":true,\"setSerdeInfo\":true,\"bucketColsSize\":0,\"bucketColsIterator\":[],\"setBucketCols\":true,\"sortColsSize\":0,\"sortColsIterator\":[],\"setSortCols\":true,\"setSkewedInfo\":true,\"setStoredAsSubDirectories\":true,\"parametersSize\":0,\"setParameters\":true},\"partitionKeys\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"parameters\":{\"EXTERNAL\":\"TRUE\",\"transient_lastDdlTime\":\"1517993141\"},\"viewOriginalText\":null,\"viewExpandedText\":null,\"tableType\":\"EXTERNAL_TABLE\",\"privileges\":null,\"temporary\":false,\"partitionKeysSize\":2,\"setSd\":true,\"partitionKeysIterator\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setPartitionKeys\":true,\"parametersSize\":2,\"setParameters\":true,\"setViewOriginalText\":false,\"setViewExpandedText\":false,\"setTableType\":true,\"setPrivileges\":false,\"setTemporary\":false,\"setTableName\":true,\"setDbName\":true,\"setOwner\":true,\"setCreateTime\":true,\"setLastAccessTime\":true,\"setRetention\":true},{\"tableName\":\"demo_tgt\",\"dbName\":\"default\",\"owner\":\"root\",\"createTime\":1517993141,\"lastAccessTime\":0,\"retention\":0,\"sd\":{\"cols\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"location\":\"hdfs://griffin:9000/griffin/data/batch/demo_tgt\",\"inputFormat\":\"org.apache.hadoop.mapred.TextInputFormat\",\"outputFormat\":\"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\",\"compressed\":false,\"numBuckets\":-1,\"serdeInfo\":{\"name\":null,\"serializationLib\":\"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\",\"parameters\":{\"field.delim\":\"|\",\"serialization.format\":\"|\"},\"setSerializationLib\":true,\"setName\":false,\"parametersSize\":2,\"setParameters\":true},\"bucketCols\":[],\"sortCols\":[],\"parameters\":{},\"skewedInfo\":{\"skewedColNames\":[],\"skewedColValues\":[],\"skewedColValueLocationMaps\":{},\"skewedColNamesSize\":0,\"skewedColNamesIterator\":[],\"setSkewedColNames\":true,\"skewedColValuesSize\":0,\"skewedColValuesIterator\":[],\"setSkewedColValues\":true,\"skewedColValueLocationMapsSize\":0,\"setSkewedColValueLocationMaps\":true},\"storedAsSubDirectories\":false,\"colsSize\":3,\"colsIterator\":[{\"name\":\"id\",\"type\":\"bigint\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"age\",\"type\":\"int\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"desc\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setCols\":true,\"setLocation\":true,\"setInputFormat\":true,\"setOutputFormat\":true,\"setCompressed\":true,\"setNumBuckets\":true,\"setSerdeInfo\":true,\"bucketColsSize\":0,\"bucketColsIterator\":[],\"setBucketCols\":true,\"sortColsSize\":0,\"sortColsIterator\":[],\"setSortCols\":true,\"setSkewedInfo\":true,\"setStoredAsSubDirectories\":true,\"parametersSize\":0,\"setParameters\":true},\"partitionKeys\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"parameters\":{\"EXTERNAL\":\"TRUE\",\"transient_lastDdlTime\":\"1517993141\"},\"viewOriginalText\":null,\"viewExpandedText\":null,\"tableType\":\"EXTERNAL_TABLE\",\"privileges\":null,\"temporary\":false,\"partitionKeysSize\":2,\"setSd\":true,\"partitionKeysIterator\":[{\"name\":\"dt\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false},{\"name\":\"hour\",\"type\":\"string\",\"comment\":null,\"setName\":true,\"setType\":true,\"setComment\":false}],\"setPartitionKeys\":true,\"parametersSize\":2,\"setParameters\":true,\"setViewOriginalText\":false,\"setViewExpandedText\":false,\"setTableType\":true,\"setPrivileges\":false,\"setTemporary\":false,\"setTableName\":true,\"setDbName\":true,\"setOwner\":true,\"setCreateTime\":true,\"setLastAccessTime\":true,\"setRetention\":true}]"
}
]
}
]
},
{
"name": "Auth",
"item": [
{
"name": "User authentication",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\"username\":\"user\",\"password\":\"test\"}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/login/authenticate",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"login",
"authenticate"
]
},
"description": "`POST /api/v1/login/authenticate`\n\n#### Request Parameter\nname | description | type |example value\n--- | --- | --- | ---\nmap | a map contains user name and password | Map | `{\"username\":\"user\",\"password\":\"test\"}`"
},
"response": [
{
"name": "User authentication example",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\"username\":\"user\",\"password\":\"test\"}"
},
"url": {
"raw": "{{BASE_PATH}}/api/v1/login/authenticate",
"host": [
"{{BASE_PATH}}"
],
"path": [
"api",
"v1",
"login",
"authenticate"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "access-control-allow-headers",
"value": "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept",
"name": "access-control-allow-headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "access-control-allow-methods",
"value": "POST, GET, OPTIONS, DELETE,PUT",
"name": "access-control-allow-methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "access-control-allow-origin",
"value": "*",
"name": "access-control-allow-origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "access-control-max-age",
"value": "3600",
"name": "access-control-max-age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "content-type",
"value": "application/json;charset=UTF-8",
"name": "content-type",
"description": "The mime type of this content"
},
{
"key": "date",
"value": "Wed, 25 Oct 2017 08:18:38 GMT",
"name": "date",
"description": "The date and time that the message was sent"
},
{
"key": "transfer-encoding",
"value": "chunked",
"name": "transfer-encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"fullName\":\"Default\",\"ntAccount\":\"user\",\"status\":0}"
}
]
}
],
"description": "user authentication"
}
]
}