Я хотел бы знать, как лучше всего импортировать данные из файла Excel на еженедельной или ежемесячной основе. Сначала я думал, что буду использовать SSIS, но после большой борьбы с, казалось бы, простыми задачами, я начинаю переосмысливать свой план. Было бы лучше / проще просто написать SQL вручную или воспользоваться услугами пакета служб SSIS? Основной процесс будет следующим:
- Отдельный процесс загрузит файл .xls на локальный файловый ресурс.
- Файл xls будет иметь имя файла, например: «myfilename MON YY».
- Мне нужно будет прочитать месяц и год из имени файла, переформатировать его в дату sql и затем запросить таблицу DimDate, чтобы найти соответствующий ключ даты.
- Для каждой строки (после первых 2 строк заголовка) вставьте данные с ключом даты, если строка не является итоговой строкой, а затем игнорируйте.
Вот некоторые проблемы, с которыми я сталкивался при SSIS:
Я могу разобрать строку даты из источника данных в виде плоского файла, но, похоже, не могу сделать это с источником данных Excel. Кроме того, после анализа я не могу преобразовать строку в дату, чтобы выполнить поиск ключа даты. Например, я хочу сделать что-то вроде этого:
выберите DateKey из DimDate
где ActualDate = convert (datetime, '01 - '+' JAN-10 ', 120)
но я не думаю, что можно использовать ключевые слова 'convert' или 'datetime' в построителе выражений. Мне также не удалось найти, где я могу отредактировать SQL, чтобы игнорировать первые 2 строки данных.
Я очень скептически отношусь к использованию SSIS, потому что это кажется хитрым способом сделать что-то, что, вероятно, может быть выполнено более эффективно при написании SQL самостоятельно, но я могу быть вынужден использовать SSIS. Мысли?