Table of Contents |
---|
minLevel | 1 |
---|
maxLevel | 7 |
---|
type | flat |
---|
|
...
실제 개발자들이 default 가 아닌 확장 컬럼을 사용할 수 도 있을 것 같습니다.
...
Info |
---|
이 API는 새 Datalake를 생성한다. Lake를 생성할 때 기본 데이터인 tag_name, time, value외의 추가 칼럼을 지정할 수 있다. 한번 생성한 lake의 추가 칼럼값들을 변경할 수 없으므로 lake를 생성할때 주의를 기울여야 한다. 데이터레이크를 생성하면 추가 비용이 발생한다. 자세한 내용은 링크에 기술되어 있다. |
...
Prerequisites |
---|
Key | Type | Description |
---|
lake_name | stringlake name | 생성할 lake의 식별자 |
lake_plan | string | tiny / basic / business/ enterprise |
owner | stringLake | 's OwnerLake의 소유주 (When omitted, the user who calls the API생략한 경우, API를 호출한 사용자) |
region | string | AWS region name |
timezone | string | Timezone name |
storage_size | int | Storage size |
tag_schema | JSON | Columns for this lake's Tag meta. Each column have the three sub component: Lake의 tag meta에 저장될 칼럼 스키마. 스키마 정보에는 다음의 3가지 칼럼을 갖는다. col_name, col_type, col_length. col_name : column name메타 칼럼 이름 col_type : column type메타 칼럼 타입 “short” : fixed integer value (2 byte length)“2바이트 정수 “int” : fixed integer value (4 byte)4바이트 정수 “long” : fixed integer value (8 byte)8바이트 정수 “float” : floating point value (4 byte)4바이트 정수 “double” : floating point value(8 byte)8바이트 실수 “datetime” : time data to nano precision (8 byte나노세컨드 정밀도의 시간 (8바이트) “varchar” : string type문자열
col_length : if varchar type, assign the max length of column문자열의 경우 길이를 지정해야 한다. (예제) Code Block |
---|
{'col_name': "name", 'col_type': "varchar", 'col_length': 40} |
The data type of the first column , 첫 번째 메타 칼럼의 데이터 타입, 즉 “col_type” must be “varchar”.But, additional meta column can have any data type”은 “varchar”를 지정해야 한다. 추가로 지정한 메타 칼럼의 데이터 타입은 다른 형으로 지정이 가능하다. |
value_schema | JSON | Columns for this lake’s values. In this field, you have to assign two essential columns for time and default value. The first column datatype must be “datetime”. The second column datatype must be “double” keeping numeric data as defaultLake에 저장될 데이터들의 칼럼 메타정보를 지정한다. 이 메타정보에서 두개의 필수 칼럼정보를 지정해야 한다. 이는 시간과 기본 센서값이다. 첫번째 필수 칼럼은 “datetime”으로 데이터 입력시간을 지정해야 하며, 두번째 칼럼의 데이터 타입은 반드시 “double” 타입으로 지정해야 한다. Code Block |
---|
{'col_name': "time", 'col_type': "datetime"},
{'col_name': "value",'col_type': "double"}
|
However, beginning with the third column information, you can have the option of specifying additional column information세번째 칼럼 이후에는 원하는 타입으로 메타 정보를 추가하면 된다. |
Request Example
Code Block |
---|
Copy Copy to clipboard
POST https://aws1.us.machlake.com/lakes
Content-Type: application/json; charset=utf8
x-api-key: {API Key}
{
"lake_info" : {
"lake_name" : "My Lake",
"lake_plan" : "basic",
"owner" : "user01",
"region" : "us-east-1",
"timezone" : "America/Los_Angeles",
"storage_size" : 60
},
"tag_schema" : [
{
"col_name" : "name",
"col_type" : "varchar",
"col_length" : 40
}
],
"value_schema" : [
{
"col_name" : "time",
"col_type" : "datetime"
},
{
"col_name" : "value",
"col_type" : "double"
}
]
} |
...
Code Block |
---|
Status 200
{
"status": true,
"data" : {lake id}
} |
Sample Code
...
github
...
Expand |
---|
|
github Code Block |
---|
# Text Encoding to UTF-8 in CMD
# Example For Create Lake API by using curl in shell script
# written by yeony kim
API_KEY=YOUR_API_TOKEN
CONTENT_HEADER=Content-Type:application/json
API_HEADER=x-api-key:$API_KEY
URL=https://api.machlake.com/lakes
# ------------------------------------------------------------------------------------------------- #
# CASE - create LAKE
curl -k -X POST $URL -H $CONTENT_HEADER -H $API_HEADER --data "{\"lake_id\":\"\",\"lake_info\":{\"lake_name\":\"sample_lake\",\"lake_plan\":\"basic\",\"owner\":\"YOUR_MACHLAKE_ID\",\"region\":\"ap-northeast-2\",\"timezone\":\"Asia/Seoul\",\"storage_size\":20},\"tag_schema\":[{\"col_name\":\"name\",\"col_type\":\"varchar\",\"col_length\":40}],\"value_schema\":[{\"col_name\":\"time\",\"col_type\":\"datetime\"},{\"col_name\":\"value\",\"col_type\":\"double\"}]}"
# Return Format
# {"data":"YOUR_LAKE_ID","status":"success"}
# ------------------------------------------------------------------------------------------------- #
|
|
Expand |
---|
|
github Code Block |
---|
// Example For Create LAKE API by using request in nodejs
// written by yeony kim
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
const express = require('express');
const app = express();
const API_KEY = "YOUR_API_TOKEN";
const URL = "https://api.machlake.com/lakes";
// CASE - create LAKE
app.get(
'/create_lake', function(req, res) {
const Data = {
lake_id:"",
lake_info:{
lake_name:"sample_lake",
lake_plan:"basic",
owner:"YOUR_MACHLAKE_ID",
region:"ap-northeast-2",
timezone:"Asia/Seoul",
storage_size:20
},
tag_schema:[
{col_name:"name",col_type:"varchar",col_length:40}
],
value_schema:[
{col_name:"time",col_type:"datetime"},
{col_name:"value",col_type:"double"}
]
}
var request = require('request');
var option = {
url: URL,
headers: {
'Content-Type': 'application/json',
'x-api-key': API_KEY
},
body: JSON.stringify(Data)
};
request.post( option, function(error, response, body) {
if (!error) {
res.writeHead(200);
res.end(body);
console.log(body) // {"data":"YOUR_LAKE_ID","status":"success"}
} else {
console.log(error)
}
})
}
)
app.listen(8888, function() {
console.log('http://127.0.0.1:8888/create_lake is result for create LAKE')
})
|
|
Expand |
---|
|
github Code Block |
---|
"""
Example For Create LAKE API by using request in python
written by yeony kim
"""
import requests
API_KEY = "YOUR_API_TOKEN"
URL = f"https://api.machlake.com/lakes"
# CASE - CASE - create LAKE
headers = {
'Content-Type': 'application/json',
'x-api-key': API_KEY
}
params = {
'lake_id': "",
'lake_info': {
'lake_name': "sample_lake",
'lake_plan': "basic",
'owner': "YOUR_MACHLAKE_ID",
'region': "ap-northeast-2",
'timezone': "Asia/Seoul",
'storage_size': 20
},
'tag_schema': [
{'col_name': "name", 'col_type': "varchar", 'col_length': 40}
],
'value_schema': [
{'col_name': "time", 'col_type': "datetime"},
{'col_name': "value", 'col_type': "double"}
]
}
response = requests.post(URL, headers=headers, json=params, verify=False)
print(response.content.decode('utf-8')) # {"data":"YOUR_LAKE_ID","status":"success"} |
|