У меня есть задача для импорта/преобразования и извлечения zipped двоичных файлов, содержащих как текстовые данные, так и встроенные двоичные данные. Внутри данных есть данные, которые являются реляционными по своей природе и нуждаются в обработке в определенной структуре базы данных. В настоящее время у меня есть однопоточное приложение на C#, которое по существу захватывает все файлы из каталога (в настоящее время существует 13K-файлов разного размера) и извлекает данные в одной строке потока вставки строки в базу данных. Как вы могли себе представить, это очень медленный процесс и неприемлемый. Существует несколько различных подпрограмм разбора, используемых в зависимости от записи заголовка в файле. Есть потенциально до миллиона строк на файл, когда все данные извлекаются на уровне строки детализации. Следующее задание состоит в том, чтобы проанализировать эти строки в соответствующих таблицах на основе содержимого. то есть текстовое содержимое должно анализироваться далее в «ведрах» аналогичных данных в базе данных. Это подводит итог большой картине. Теперь для списка задач задачи.Преобразование двоичных данных с использованием ssis и sql server 2008
Как выполнить итерацию через пакет данных с помощью SSIS? В приложении файл распаковывается, а затем анализируется с использованием типов данных потоков и байт-массивов и направляется на требуемую процедуру разбора на основе данных заголовка каждого пакета. Кроме того, есть небольшая замена. Должен ли я завернуть код приложения в задачу сценария и позволить ему выполнять пользовательскую обработку? Данные разделяются по годам, а таблицы SQL-сервера также разбиваются на год. Мне также нужно иметь возможность «ловить» плохие данные файла и, скорее всего, обрабатывать их вручную.
Должен ли я просто загружать zipped-файл в SQL как blob и анализировать файл с помощью T-SQL? Будет ли это многопоточным, если это будет сделано? Не знаете, как это сделать в T-SQL. Как вы думаете, что будет быстрее?
Потенциально данные, которые в настоящее время обрабатываются через файлы, могут прийти к нам через сокет. Может ли SSIS собирать эти данные в режиме реального времени? Как я могу это настроить?
Обработка этих новых файлов из каталогов станет повседневной задачей. Я могу управлять данными, как только я получу его на SQL Server. Добравшись до него своевременно, кажется, длинный полюс в палатке для меня. Буду признателен за любые замечания или предложения от группы.
Рик
Согласен. Хотя теоретически вы можете сделать что-то подобное в задаче скрипта, это действительно неправильный инструмент для работы. – Meff
Я думал то же самое ... просто хотел получить другую перспективу. Я намерен взять данные, которые обрабатываются в базу данных (хранится как varbinary) в хранилище ssis. Вы видите какие-либо препятствия в этой задаче в том, что данные не обрабатываются в конкретных типах данных? – Rick