Info
Content

Export dat

Pro export dat je poskytován přímý přístup k API rozhraní databáze InfluxDB, které je založeno na protokolu HTTP a používá vlastní dotazovací jazyk vycházející z SQL.

Přístup: https://db.hexio.cloud
Přístupové údaje k InfluxDB API naleznete v sekci Integrace pod příslušným projektem.
Přístup k databázi je poskytován pouze pro čtení.

Oficiální dokumentace k InfluxDB (anglicky)

Vykonání dotazu

Pro vykonání dotazu je potřeba zaslat HTTP požadavek na následující endpoint pomocí HTTP metody POST. Požadavek je nutné odeslat s Basic authorization. Odpověď serveru je ve formátu JSON.

URL: https://data.hexio.io:8086/query?db=<db_name>&q=<query>

Příklad vykonání požadavku pomocí nástroje “curl”:

curl -u <username>:<password> -G \
	"https://data.hexio.io:8086/query" \
	--data-urlencode "db=<db_name>" \
	--data-urlencode "q=<query>"

Načtení seznamu identifikátorů zpráv

Následující dotaz vrátí seznam jednotlivých topiců (měření), pod kterými jsou uložené jednotlivé zprávy.

Dotaz SQL: SHOW MEASUREMENTS

Příklad vykonání dotazu pomocí nástroje curl a vrácené odpovědi:

curl -u test:test -G \
	"https://data.hexio.io:8086/query" \
	--data-urlencode "db=test" \
	--data-urlencode "q=SHOW MEASUREMENTS"

{
   "results": [
      {
         "statement_id": 0,
         "series": [
            {
               "name": "measurements",
               "columns": [
                  "name"
               ],
               "values": [
                  [
                     "home.livingroom.temperature"
                  ],
                  [
                     "garden.temperature"
                  ]
               ]
            }
         ]
      }
   ]
} 

Načtení zpráv uložených pod identifikátorem

Pro načtení uložených zpráv lze použít následující SQL dotaz.

Dotaz SQL: SELECT <*|"field"[,"field"]> FROM "<topic>"[,"topic"] [WHERE <conditions>] [LIMIT <count>]

Příklad vykonání dotazu pomocí nástroje curl a vrácené odpovědi:

curl -u test:test -G \
   "https://data.hexio.io:8086/query" \
   --data-urlencode "db=test" \
   --data-urlencode "q=SELECT * FROM \"garden.temperature\" LIMIT 2"

{
	"results": [
		{
			"statement_id": 0,
			"series": [
				{
					"name": "garden.temperature",
					"columns": [
						"time",
						"v",
						"u"
					],
					"values": [
						[
							"2018-04-23T10:33:00Z",
							23.5,
							"Cel"
						],
						[
							"2018-04-23T10:34:00Z",
							23.6,
							"Cel"
						]
					]
				}
			]
		}
	]
}

Načtení všech zpráv

Následující dotaz vrátí všechny zprávy uložené pod zvoleným identifikátorem.

Dotaz SQL: SELECT * FROM "<topic>"

Příklad: SELECT * FROM "home.livingroom.temperature"

Načtení určitého počtu zpráv

Následující dotaz vrátí specifikovaný počet posledních zpráv uložených pod zvoleným identifikátorem.

Dotaz SQL: SELECT * FROM "<topic>" LIMIT <count>

Příklad: SELECT * FROM "home.livingroom.temperature" LIMIT 10

Načtení zpráv dle časového rozmezí

Následující dotaz vrátí zprávy, které byly uloženy ve zvoleném časovém rozmezí.

Dotaz SQL: SELECT * FROM "<topic>" WHERE time <time_condition>

Příklad dotazu, který vrátí zprávy uložené za posledních 24 hodin:
SELECT * FROM "home.livingroom.temperature" WHERE time >= now() - 1d

Příklad dotazu, který vrátí zprávy uložené v zadaném rozmezí:
SELECT * FROM "garden.temperature" WHERE time > 2018-10-26T6:00:00.0Z AND time < 2018-10-26T18:00:00.0Z

Agregační funkce

Následující dotaz vrátí součet hodnot agregovaných dle časového úseku.

Dotaz SQL:
SELECT <function>(<"field">) FROM "<topic>" WHERE <time_range> GROUP BY time(<duration>)

Příklad dotazu, který vrátí součet hodnot za posledních 30 dní agregovaných po dnech:
SELECT SUM("v") FROM "home.livingroom.temperature" WHERE time >= now() - 30d GROUP BY time(1d)

Více informací

Výše uvedené SQL dotazy jsou jen vybrané příklady. Pro více informací o jazyku SQL databáze InfluxDB doporučujeme prostudovat oficiální dokumentaci, která je dostupná na následující adrese:

InfluxDB dokumentace (anglicky)

No Comments
Back to top