Skip to content

0.12.0 (2024-09-03)

Критические изменения

  • Изменен URL-адрес подключения, используемый для генерации HWM-имен источников S3 и Samba:
  • smb://host:port -> smb://host:port/share
  • s3://host:port -> s3://host:port/bucket (#304)
  • Обновлены коннекторы/драйверы БД до последних версий:
  • Clickhouse 0.6.0-patch50.6.5
  • MongoDB 10.3.010.4.0
  • MSSQL 12.6.212.8.1
  • MySQL 8.4.09.0.0
  • Oracle 23.4.0.24.0523.5.0.24.07
  • Postgres 42.7.342.7.4
  • Обновлен пакет Excel с 0.20.3 до 0.20.4, для включения поддержки Spark 3.5.1. (#306)

Функциональность

  • Добавлена поддержка указания форматов файлов (ORC, Parquet, CSV и т.д.) в HiveWriteOptions.format (#292):
Hive.WriteOptions(format=ORC(compression="snappy"))
  • Сбор метрик выполнения Spark и их логирование в режиме DEBUG в следующих методах:
  • DBWriter.run()
  • FileDFWriter.run()
  • Hive.sql()
  • Hive.execute()

Это реализовано с использованием пользовательского SparkListener, который оборачивает весь вызов метода, и затем сообщает собранные метрики. Но эти метрики иногда могут отсутствовать из-за архитектуры Spark, и таким образом они не являются надежным источником информации. Поэтому логи выводятся только в режиме DEBUG, и не возвращаются как результат вызова метода. (#303)

  • Генерация jobDescription по умолчанию на основе текущего выполняемого метода. Примеры:
  • DBWriter.run(schema.table) -> Postgres[host:5432/database]
  • MongoDB[localhost:27017/admin] -> DBReader.has_data(mycollection)
  • Hive[cluster].execute()

Если пользователь уже установил пользовательский jobDescription, он останется нетронутым. (#304)

  • Добавлен log.info об использовании диалекта JDBC (#305):
|MySQL| Detected dialect: 'org.apache.spark.sql.jdbc.MySQLDialect'
  • Логирование оценочного размера dataframe в памяти, созданного методами JDBC.fetch и JDBC.execute. (#303)

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

  • Исправлена передача Greenplum(extra={"options": ...}) во время операций чтения/записи. (#308)
  • Не вызывается исключение, если хук на базе yield выдал что-то единственное после yield.