Zum Inhalt

ClickHouse

GraphQL-Schnittstelle

Über die GraphQL-Schnittstelle können Daten aus der ClickHouse-Datenbank abgefragt werden. Dafür muss die SQL-Query mit der entsprechenden GraphQL-Query gesendet werden, die Antwort der Query wird als JSON zurückgegeben:

query {
    clickhouseQuery(query: "SELECT * FROM sensor_messages LIMIT 10")
}
Ergebnis
{
    "errors": [],
    "data": {
        "clickhouseQuery": { "meta": [{ "name": "project", "type": "String" }], "data": [], "rows": 0 }
    },
    "dataPresent": true
}

clickhouseQuery ohne Angabe eines Projektes ermöglicht es, die Daten aus den sensor_messages und sensor_messages_with_meta Tabellen abzufragen. Um Queries auszuführen, die auf Daten im S3 Datei-Manager zugreifen, muss das entsprechende Projekt als Parameter angegeben werden:

query {
    clickhouseQuery(
        query: "SELECT SUM(test) FROM s3(`knuffingen.trainstation`,filename='test.csv',format='CSV')"
        project: { tenant: "knuffingen", project: "trainstation" }
    )
}
Ergebnis
{
    "errors": [],
    "data": {
        "clickhouseQuery": {
            "meta": [{ "name": "SUM(test)", "type": "Nullable(Int64)" }],
            "data": [{ "SUM(test)": 42 }],
            "rows": 1
        }
    },
    "dataPresent": true
}

Es ist zu empfehlen, die Abfragen in SQL-Lab zu entwickeln, um diese dann automatisiert über die GraphQL-Schnittstelle ausführen zu können.