Какую библиотеку использовать для записи Delta Parquet в .NET? [закрыто]

Вопрос или проблема

Существует ли библиотека, которую я могу использовать для написания высокомасштабируемых производственных дельта-журналов для ADLS?

Я ищу библиотеку, которая реализует эту спецификацию.

Я знаю, что есть библиотека на Java, io.delta:delta-kernel-api, которая ее реализует, но я хотел бы избежать внедрения другой технологии в мой проект. Чтобы использовать ее, мне придется расширить функциональность Java, так как она готова к потреблению в качестве процесса.

Я также знаю, что есть пакет delta-kernel-r, но он, похоже, не готов к производственному использованию.

Ответ или решение

Для записи Delta Parquet в среде .NET, вам стоит обратить внимание на несколько библиотек и решений, которые могут помочь вам в этом процессе, несмотря на существующие ограничения и потребности, описанные в вашем вопросе.

Delta Lake и .NET

На данный момент не существует полнофункциональной и зрело разработанной библиотеки для работы с Delta Lake непосредственно в .NET. Как вы упомянули, библиотека io.delta:delta-kernel-api, написанная на Java, является одним из наиболее распространенных решений, когда дело доходит до работы с Delta файлми. Однако, использование Java-кода в проекте .NET может создать дополнительные сложности и потребовать дополнительных интеграций.

Альтернативные решения:

  1. ZetaSQL и другие межъязычные решения:
    Некоторые команды обращаются к использованию ZetaSQL или других библиотек, которые могут обращаться к Delta Lake с использованием SQL-запросов. Это метод позволяет делать запросы к данным через API REST или другую прослойку, которая может синхронизироваться с вашей C# логикой.

  2. Apache Arrow и Parquet:
    Можно рассмотреть использование Apache Arrow или Parquet напрямую, что даст возможность создавать и читать файлы Parquet. Оба формата поддерживаются в экосистеме .NET через библиотеки, такие как Parquet.Net. Однако, это не обеспечит полную функциональность Delta Lake, такую как управление версиями и журналы транзакций.

  3. Использование других языков программирования:
    Если ваши требования к производительности и возможностям Delta являются критичными, возможно, вам стоит рассмотреть написание собственных компонент на Java или Scala, которые затем будут работать как микросервисы и взаимодействовать с вашим .NET приложением через API или сообщение (message queue).

  4. Delta Lake через Spark:
    Если в вашей архитектуре допустимо использование Apache Spark, вы можете использовать PySpark или Scala для работы с Delta Lake. Это также позволит вам писать данные в Delta формат и использовать мощные функции обработки данных, доступные в Spark.

Заключение

Выбор подходящего решения для работы с Delta Lake в .NET зависит от ваших конкретных нужд и архитектуры проектирования. Если вам нужно писать напрямую в Delta форматы и вы предпочитаете не интегрировать Java-код, возможно, стоит пересмотреть архитектуру вашего решения или воспользоваться альтернативными методами работы с данными. Важно помнить о том, что использование межъязычных взаимодействий может потребовать дополнительных усилий, однако, это может быть полезным в долгосрочной перспективе для обеспечения масштабируемости и надежности вашего проекта.

Рекомендуемые действия

  • Проанализируйте потребности вашего проекта и определите допустимые компромиссы.
  • Исследуйте возможности интеграции других языков, если это уместно.
  • Тестируйте предложенные решения в контексте ваших требований к производительности и функциональности.

Эта информация может помочь вам сориентироваться в вопросе выбора библиотеки для работы с Delta Parquet в .NET.

Оцените материал
Добавить комментарий

Капча загружается...