Skip to content

0.4.0 (2025-10-03)

Функции

  • Представляем новый http2kafka компонент. (#281)

Это позволяет использовать DataRentgen с OpenLineage HttpTransport.Аутентификация осуществляется с помощью персональных токенов.

  • Добавлены эндпоинты REST API для управления персональными токенами. (#276)

Список эндпоинтов:

  • GET /personal-tokens - получение персонального токена для текущего пользователя.
  • POST /personal-tokens - создание нового персонального токена для текущего пользователя.
  • PATCH /personal-tokens/:id - обновление персонального токена (отозвать токен и создать новый).
  • DELETE /personal-tokens/:id - отзыв персонального токена.

  • Добавлены новые сущности Tag и TagValue. (#268)

    Теги можно использовать в качестве дополнительных свойств для других сущностей. Эта функция всё ещё находится в разработке.

  • Добавлен эндпоинт GET /v1/tags. (#289)

    Имена и значения тегов могут быть доступны для постраничного просмотра, поиска по идентификаторам или получения данных по ним.

    Пример ответа
    [
      {
        "id": 1,
        "name": "env",
        "values": [
          {
            "id": 1,
            "value": "dev"
          },
          {
            "id": 2,
            "value": "prod"
          }
        ]
      }
    ]
    
  • Обновлен GET /v1/datasets включен tags: [...] в ответ. (#289)

    Пример датасета ответа

    До:

    {
      "id": "8400",
      "location": {...},
      "name": "dataset_name",
      "schema": {},
    }
    

    После:

    {
      "id": "25896",
      "location": {...},
      "name": "dataset_name",
      "schema": {...},
      "tags": [  # <---
        {
          "id": "1",
          "name": "environment",
          "values": [
            {
              "id": "2",
              "value": "production"
            }
                    ]
        },
        {
          "id": "2",
          "name": "team",
          "values": [
            {
              "id": "4",
              "value": "my_awesome_team"
            }
                    ]
        }
              ]
    }
    
  • Добавлены новые фильтры к эндпоинту GET /v1/datasets. (#294, #289)

Параметры запросы:

  • location_id: int
  • tag_value_id: list[int] - Если передано несколько значений, набор данных должен содержать все из них.

  • Добавлены новые фильтры к эндпоинту GET /v1/jobs. (#319)

Параметры запроса:

  • location_id: int
  • job_type: list[str]

  • Добавлены новые фильтры к эндпоинту GET /v1/runs. (#322, #323)

Параметры запроса

  • job_type: list[str]
  • status: list[RunStatus]
  • started_since: datetime | None
  • started_until: datetime | None
  • ended_since: datetime | None
  • ended_until: datetime | None
  • job_location_id: int | None
  • started_by_user: list[str] | None

  • Добавлен эндпоинт GET /v1/jobs/types. (#319)

  • Добавлены пользовательские аспекты dataRentgen_run и dataRentgen_operation. (#265)

Эти аспекты позволяют

  • Передавать пользовательские поля external_id, persistent_log_url и другие поля объекта Run.
  • Передавать пользовательские поля операций name, description, group, position.
  • Отметьте событие как содержащее только данные об операции или данные как о выполнении, так и об операции.

  • Настройка output.type в зависимости от выполняемого SQL-запроса, e.g. INSERT, UPDATE, DELETE, и т.д. (#310)

Улучшения

  • Улучшена производительность для потребителей за счет снижения нагрузки на базу данных при операциях чтения.. (#314)

  • Добавлено обходное решение, если OpenLineage сгенерировал событие приложения Spark с job.name=unknown. (#263)

Для этого необходимо установить OpenLineage с уже внесённым исправлением.: https://github.com/OpenLineage/OpenLineage/pull/3848.

  • Символические ссылки на наборы данных, не имеющие входных/выходных данных, больше не удаляются из графа происхождения. (#269)

  • Для повышения точности сопоставления адресов и местоположений преобразовали их в нижний регистр.. (#313)

Элементы oracle://host:1521 и ORACLE://HOST:1521 теперь представляют собой один и тот же элемент oracle://host:1521.

  • Обеспечена нечувствительность к регистру при сопоставлении наборов данных, заданий, тегов и имен пользователей, используя уникальные индексы в выражении lower(name). (#313)

Элементы database.schema.table и DATABASE.SCHEMA.TABLE теперь представляют собой один и тот же элемент.

Поскольку каноническое имя набора данных зависит от соглашения об именовании баз данных (UPPERCASE для Oracle, lowercase для Postgres),мы не можем преобразовать их в один конкретный регистр (верхний или нижний). Вместо этого мы используем первое полученное значение в качестве канонического.

Исправление ошибок

  • Для lineage с параметром granularity=DATASET возвращается реальный граф lineage. (#264)

В версии v0.4.x отслеживание происхождения данных осуществлялось по run_id, но это могло привести к некорректным результатам. В версии v0.4.x отслеживание происхождения данных теперь осуществляется по operation_id.

  • Исключены самореферентные родственные связи в случае granularity=DATASET. (#261)

Если в каком-либо запуске используется одна и та же таблица как в качестве входных, так и выходных данных (например, при слиянии дубликатов или выполнении некоторых проверок перед записью), DataRentgen исключает связи dataset1 -> dataset1 из происхождения данных.

Это не влияет на цепочки типа dataset1 -> job1 -> dataset1 или dataset1 -> dataset2 -> dataset1.