es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Importar datos desde la URL de la API (por ejemplo, desde Google Analytics) a ClickHouse.

Usando curl, puedes importar datos de la API de Google, por ejemplo, de Google Analytics. Puedes usar esta URL para obtener los datos.

curl 'https://www.googleapis.com/analytics/v3/data/ga?access_token=[YOUR_TOKEN]&ids=ga%3A[ID_GA_VIEW]&dimensions=ga%3Adate&metrics=ga%3Ausers&start-date=2021-12-01&end-date=2021-12-10''

Esto me devuelve un JSON.

"totalsForAllResults": {
    "ga:users": "214377"
  },
  "rows": [
    [
      "20211201",
      "28818"
    ],
    [
      "20211202",
      "27421"
    ],
    [
      "20211203",
      "23758"
    ],
    [
      "20211204",
      "12453"
    ],
    [
      "20211205",
      "12514"
    ],
    [
      "20211206",
      "21857"
    ],
    [
      "20211207",
      "23770"
    ],
    [
      "20211208",
      "17458"
    ],
    [
      "20211209",
      "24278"
    ],
    [
      "20211210",
      "22050"
    ]
  ]

¿Puedo importar a ClickHouse utilizando los datos directamente desde la URL de la API?

Resultado deseado, insertando los datos en la tabla directamente desde la URL de la API.

| date       | users |
|:-----------|:------|
| 2021-12-01 | 28818 |
| 2021-12-02 | 27421 |
| 2021-12-03 | 23758 |
| 2021-12-04 | 12453 |
| ....       | ....  |
Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, puedes importar datos desde la API URL directamente a ClickHouse utilizando la función de origen de datos HTTP URL de ClickHouse. A continuación, se detallan los pasos para insertar datos en una tabla directamente desde la API URL:

    1. Crea una tabla en ClickHouse con la misma estructura que la respuesta JSON de la API URL. En este caso, la tabla debería tener dos columnas: date y users.
    CREATE TABLE my_table (
      date Date,
      users UInt64
    ) ENGINE = MergeTree()
    ORDER BY date;
    
    1. Utiliza la función de origen de datos HTTP URL de ClickHouse para obtener la respuesta JSON de la API URL y analizarla en formato JSONEachRow. La función JSONEachRow analiza cada objeto JSON como una fila separada.
    INSERT INTO my_table
    SELECT toDate(rows.1) AS date, toUInt64(rows.2) AS users
    FROM remote('<api_url_aquí>') FORMAT JSONEachRow;
    
    1. La consulta anterior insertará datos en la tabla my_table desde la API URL directamente. Puedes verificar los datos ejecutando una consulta simple:
    SELECT * FROM my_table;
    

    Esto devolverá los datos de la tabla con el resultado deseado, como se muestra a continuación:

    date users
    2021-12-01 28818
    2021-12-02 27421
    2021-12-03 23758
    2021-12-04 12453

    Nota: Reemplaza <api_url_aquí> con la URL real de la API de la cual deseas obtener los datos. Además, asegúrate de que los tokens de autenticación estén configurados correctamente para la API.</api_url_aquí></api_url_aquí>

Comments are closed.