日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

HTTP API SQL接口開發手冊

本文介紹時序引擎提供的基于HTTP協議的通用SQL接口的定義和用法。

使用須知

  • 對于非Java語言的應用開發,可以使用本文的API接口直接向時序引擎發送SQL語句。

  • 對于Java語言的應用開發,建議基于Java JDBC Driver構建時序引擎的應用程序,具體請參見Java JDBC Driver開發手冊

    說明

    單機版不支持此功能。

請求路徑與方法

請求路徑

請求方法

描述

/api/v2/sql

POST

發送并執行SQL語句。

請求內容

請求上述API時,直接將SQL語句寫入HTTP請求的請求體,并且建議在請求頭設置Content-Typetext/plain。以Python代碼為例,在Python代碼中向/api/v2/sql傳送一條SQL語句的示例如下:

import requests

url = "http://ld-bp1s0vbu8955w****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242/api/v2/sql"

payload = """CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
)"""

r = requests.post(url, payload)
if r.status_code == 200:
    print(r.content)
else:
    print(r.content)

payload = """insert into sensor (device_id, region, time, temperature, humidity) values 
('F07A1260','north-cn','2021-04-22 15:33:00',12.1,45), 
('F07A1260','north-cn','2021-04-22 15:33:10',13.2,47), 
('F07A1260','north-cn','2021-04-22 15:33:20',10.6,46), 
('F07A1261','south-cn','2021-04-22 15:33:00',18.1,44), 
('F07A1261','south-cn','2021-04-22 15:33:10',19.7,44)"""

r = requests.post(url, payload)
if r.status_code == 200:
    print(r.content)
else:
    print(r.content)

payload = "select * from sensor"

r = requests.post(url, payload)
if r.status_code == 200:
    print(r.content)
else:
    print(r.content)
說明

時序引擎基于SQL-92標準支持使用半角分號(;)作為SQL語句的終止符,但是在調用/api/v2/sql接口傳遞SQL語句時,不能在結尾使用半角分號(;)否則請求過程中會報錯。

支持的查詢參數

/api/v2/sql支持的URL查詢參數如下所示:

名稱

描述

database

SQL執行時的默認Database。

當指定的SQL中寫入或查詢的時序表名未顯式指定所屬數據庫名時,時序引擎默認會在該參數指定的database中搜尋操作對象的表名。未指定該查詢參數時,引擎會默認在名為default的Database中搜尋表名。

chunked

是否流式返回結果數據。默認為false。

當指定為true時,查詢結果數據會以多個JSON塊的方式返回,每個JSON塊最多包含chunk_size行數據。在解析結果數據時,只需要逐個解析JSON塊即可。每個JSON塊的結構參考響應內容部分描述。

chunk_size

指定流式返回結果時每次返回的最大行數。chunked=true時生效,默認為1000。

用戶認證信息指定

當Lindorm時序引擎開啟用戶鑒權時,通過/api/v2/sql發送SQL請求時需要向HTTP請求頭中填入用戶認證信息。目前/api/v2/sql遵循的是BASIC AUTH認證方式,編碼后的認證信息需要指定在HTTP請求頭的Authorization字段中。

基本認證憑據的格式如下:

BASIC {BASE64編碼的認證信息}

其中BASE64編碼的認證信息${用戶名}:${對應的用戶密碼},以半角冒號(:)分隔。

說明

各編程語言編碼并填充BASIC AUTH認證信息的方法,請查詢所用語言的相關類庫的使用文檔,不在此羅列。

對于初始用戶名root和初始密碼root,BASE64編碼后HTTP請求頭的Authorization字段應包含的信息如下所示:

Authorization: Basic cm9vdDpyb290

響應內容

查詢成功的HTTP響應碼為200,響應內容為JSON格式數據。說明如下:

名稱

類型

描述

columns

Array

字符串數組

表示返回結果集中列名。

metadata

Array

字符串數組

表示返回結果集中每一列的數據類型名稱。可能返回的數據類型請參見數據類型

rows

Array

數組的數組

表示返回結果集的行的集合。其中的每一個數組代表著一行數據,每行數據中的具體數據與columns中返回的列一一對應。

SQL執行出錯時的響應消息中的HTTP響應碼為400,響應消息體是一個JSON格式數據,其包含的字段說明如下:

名稱

類型

描述

code

int

錯誤碼。

sqlstate

String

SQL狀態碼。

message

String

錯誤詳情。

說明

關于錯誤碼對應的具體錯誤,具體請參見常見錯誤碼參考

示例

以下示例通過常用的curl命令,展示了如果通過該HTTP接口對Lindorm時序引擎執行SQL。

  • 創建名為DB1的Database。

    curl -X POST http://ld-xxxxxxxxx-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242/api/v2/sql -d 'CREATE DATABASE DB1'
  • 在DB1下創建名為SENSOR的時序數據表。

    curl -X POST http://ld-xxxxxxxxx-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242/api/v2/sql?database=DB1 -d 'CREATE TABLE SENSOR (device_id VARCHAR TAG,region VARCHAR TAG,time TIMESTAMP,temperature DOUBLE,humidity DOUBLE)'

    或者

    curl -X POST http://ld-xxxxxxxxx-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242/api/v2/sql -d 'CREATE TABLE DB1.SENSOR (device_id VARCHAR TAG,region VARCHAR TAG,time TIMESTAMP,temperature DOUBLE,humidity DOUBLE)'
  • 當用戶鑒權開關開啟時,以一個名為 tsdbuser的用戶查詢上述SENSOR時序表。

    curl -X POST -u tsdbuser:password http://ld-xxxxxxxxx-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242/api/v2/sql?database=DB1 -d 'SELECT device_id, region, time, MAX(temperature) as max_t FROM SENSOR WHERE time >= 1619076780000 AND time <= 1619076800000 SAMPLE BY 20s'
    說明

    示例中已事先對用戶tsdbuser賦予了時序表SENSOR的相關權限。