View Source Druid.Client.SQL (ecto_druid v0.5.0)

Builds requests for Druid's SQL API.

Summary

Functions

Builds an insert request for Druid's SQL API.

Builds a query request for Druid's SQL API.

Functions

insert(query, params \\ [], opts \\ [])

@spec insert(String.t(), list(), Keyword.t()) :: Req.Request.t()

Builds an insert request for Druid's SQL API.

Examples

sql = """
  INSERT INTO w000
  SELECT
    TIME_PARSE("timestamp") AS __time,
    isRobot,
    channel,
    flags,
    isUnpatrolled,
    page,
    diffUrl,
    added,
    comment,
    commentLength,
    isNew,
    isMinor,
    delta,
    isAnonymous,
    user,
    deltaBucket,
    deleted,
    namespace,
    cityName,
    countryName,
    regionIsoCode,
    metroCode,
    countryIsoCode,
    regionName
  FROM TABLE(
      EXTERN(
        '{"type":"http","uris":["https://druid.apache.org/data/wikipedia.json.gz"]}',
        '{"type":"json"}',
        '[{"name":"isRobot","type":"string"},{"name":"channel","type":"string"},{"name":"timestamp","type":"string"},{"name":"flags","type":"string"},{"name":"isUnpatrolled","type":"string"},{"name":"page","type":"string"},{"name":"diffUrl","type":"string"},{"name":"added","type":"long"},{"name":"comment","type":"string"},{"name":"commentLength","type":"long"},{"name":"isNew","type":"string"},{"name":"isMinor","type":"string"},{"name":"delta","type":"long"},{"name":"isAnonymous","type":"string"},{"name":"user","type":"string"},{"name":"deltaBucket","type":"long"},{"name":"deleted","type":"long"},{"name":"namespace","type":"string"},{"name":"cityName","type":"string"},{"name":"countryName","type":"string"},{"name":"regionIsoCode","type":"string"},{"name":"metroCode","type":"long"},{"name":"countryIsoCode","type":"string"},{"name":"regionName","type":"string"}]'
      )
    )
  PARTITIONED BY HOUR
  CLUSTERED BY channel
  """

Druid.Client.SQL.insert(sql)
|> Druid.Client.request!(host: "localhost", port: 8082)

query(query, params \\ [], opts \\ [])

@spec query(String.t(), list(), Keyword.t()) :: Req.Request.t()

Builds a query request for Druid's SQL API.

Examples

Druid.Client.SQL.query("SELECT * FROM wikipedia")
|> Druid.Client.request!(host: "localhost", port: 8082)