Используйте SQL для данных в памяти - PullRequest
1 голос
/ 17 июня 2020

У меня есть два (или более) DataSet, поступающих из запросов из разных баз данных и хранилищ данных. Теперь мне нужно объединить эти наборы данных (например, JOIN, UNION ALL, агрегатные функции и т. Д. c.) Настраиваемым способом, предпочтительно описанным в синтаксисе SQL. Есть ли эффективный способ выполнить SQL для данных в памяти? Я уже собрал следующие подходы, но ни один из них не кажется оптимальным для того, что я пытаюсь сделать:

  1. Определите какой-нибудь проприетарный язык, который может решить проблему и проанализировать его. На самом деле это уже существующее решение, но его поддержка и расширение требует больших усилий.
  2. Найдите драйвер SQL, который работает с DataSets или другими структурами данных C#. Я не мог найти ничего подобного.
  3. Используйте, например, SQLite для записи наборов данных в таблицы (в памяти) и запуска на них SQL. Однако мне нужно перелопатить все данные в таблицы, а затем обратно, так что это, вероятно, не будет самым эффективным решением. Кроме того, мы обычно используем T SQL, поэтому SQLite представит другой диалект SQL.
  4. Используйте SQL Server для записи наборов данных во временные таблицы и запуска на них SQL. Больше лопат, но на этот раз через границы процесса и с уже существующим SQL диалектом.

Может ли кто-нибудь предложить другие подходы? Или, может быть, указать c библиотек для подхода 2?

...