Что такое JSON?

«Что такое JSON?» — вопрос из категории Моделирование данных и DWH, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

JSON (JavaScript Object Notation) — это текстовый, независимый от языка формат для хранения и передачи структурированных данных. Он широко используется в веб-API, конфигурационных файлах и как формат обмена между сервисами в контексте Data Warehousing (DWH) и ETL-процессов.

Основные структуры данных в JSON:

  • Объекты: Неупорядоченные наборы пар «ключ-значение», заключенные в фигурные скобки {}. Ключи — это строки.
  • Массивы: Упорядоченные списки значений, заключенные в квадратные скобки [].
  • Значения: Строки, числа, логические значения (true/false), null, объекты или массивы.

Практическое применение в DWH/ETL:

  1. Источник данных: Многие современные API (например, SaaS-сервисы) отдают данные в формате JSON. ETL-процесс начинается с их парсинга.
  2. Полуструктурированное хранение: В базах данных вроде Snowflake или BigQuery тип данных VARIANT/JSON позволяет загружать JSON-документы целиком для последующего анализа с помощью SQL-функций.
  3. Конфигурация: JSON часто используется для описания конвейеров данных (например, в Apache Airflow).

Пример обработки JSON в SQL (Snowflake):

-- Допустим, у нас есть столбец raw_json с данными
SELECT
    raw_json:customer_id::INT as customer_id,
    raw_json:orders[0].amount::FLOAT as first_order_amount
FROM raw_data_table;

Ключевые ограничения: JSON не поддерживает типы даты, времени или бинарные данные напрямую — их нужно представлять в виде строк или чисел с последующим преобразованием.

Видео-ответы