Как я могу автоматически импортировать CSV-файлы в SQL Server?

546
Odinson

Моя цель

  • Автоматическое объединение данных, чтобы я мог использовать инструмент (Microsoft Power BI или аналогичный) для автоматического обновления информационных панелей и / или отчетов с новыми данными.

Ситуация

Я работаю с LMS, которая допускает только два варианта извлечения данных из своей базы данных:

  • Загрузка отчетов вручную

или же

  • планирование этих отчетов, которые будут отправлены по электронной почте.

Мы хотим иметь возможность просматривать определенный набор данных, но на самом деле у нас нет времени на ручную очистку и агрегирование всех этих данных каждый раз, когда они нам нужны.

Я хочу понять, могу ли я отправить по электронной почте файлы csv в базу данных и автоматически импортировать их (я не верю, что это возможно) или иметь базу данных для автоматического импорта новых файлов в папку.

Что я имею

  • Отчеты построены с нужными нам данными
    • Просто не в том формате, который мы хотим

Что у меня нет

  • Внутренний доступ к базе данных LMS

Вполне вероятно, что это будет SQL Server, который будет использоваться, это возможно.

1
Найдите выделенную виртуальную машину или рабочую станцию ​​и т. Д., Которую вы можете посвятить автоматизации загрузки вручную и использовать AutoIT для создания сценария для выполнения движения из веб-браузера и т. Д., Когда кто-то делает это вручную, эмулируя соответствующие щелчки мыши и движения и нажатия клавиш на клавиатуре. Затем вы стандартизируете и автоматизируете копирование этих файлов, а затем, возможно, импортируете их с помощью операторов BCP или TSQL BULK INSERT. С небольшой пробой и ошибкой, исследованиями и т. Д. Вы можете понять это ... просто краткое представление о подходе, который я бы рассмотрел, если это абсолютно необходимо. Pimp Juice IT 6 лет назад 0
Какая ЛМС? Я делаю то же самое, но в обоих направлениях - файлы CSV из Crystal Reports в локальную базу данных mysql, генерирую файлы CSV и импортирую их в LMS. Или используйте API LMS для отправки / получения некоторых данных для создания пользовательских отчетов и т. Д. Я также не использую Excel для этого - я использую PHP в качестве языка быстрой обработки текстовых запросов / запросов в БД, что очень легко сделать , Может быть хорошим поводом для изучения PHP, Python и т.д ... ivanivan 6 лет назад 0
@ivanivan LMS - это IBM Kenexa (не Brassring). Я хотел бы иметь возможность использовать API, однако он довольно ограничен и разрешает доступ только к информации о членах и организациям. Если бы я мог использовать API, я бы обрадовался :) Odinson 6 лет назад 0
@ Spittin'IT Интересный вариант, и я точно не хочу говорить «нет», не вдаваясь в подробности. Хотя это не совсем то, что я ищу, я согласен, что это вариант. Спасибо! :) Odinson 6 лет назад 0
С каким типом почтового сервера вы работаете и являетесь ли вы администратором электронной почты домена или можете ли вы поговорить с ним о возможности использования почтовым сервером внешнего сценария или встроенной функциональности и т. Д., А также обнародовать некоторые правила, если электронная почта, если из x и отправляется в x и имеет вложение .csv, затем скопируйте этот .csv в этот UNC-путь, и оттуда вы можете периодически проверять что-то, и если файл найден, массовый импорт и т. д. Может быть, стоит поговорить с ваш администратор электронной почты или некоторые чтения на вашем SMTP-сервере функциональности для таких опций. Pimp Juice IT 6 лет назад 0
Я предполагаю, что загрузка отчетов вручную происходит не через FTP, а через интерфейс HTTP или что-то в этом роде, верно? Если бы вы могли загружать через FTP или SFTP и т. Д., Вы наверняка могли бы автоматизировать обменную часть. Pimp Juice IT 6 лет назад 0
@ Spittin'IT Вы правы, когда я вручную загружаю CSV, это происходит через веб-интерфейс, так как нет другого способа, кроме как отправить его мне по электронной почте. Что касается твоей идеи поговорить с моим администратором электронной почты, это звучит как приемлемый вариант. Спасибо! Я посмотрю, что я смогу узнать в ближайшие несколько дней. Odinson 6 лет назад 0
Другая идея, если в HTTP-интерфейсе используются вызовы API, и если да, то, возможно, вы можете передать аргумент с помощью вызовов URL с параметрами для входа в систему, загрузки и т. Д., А затем использовать PowerShell Invoke-WebRequest или что-то подобное для автоматизации загрузки. через вызов URL. Я предполагаю, что данные являются конфиденциальными, и это интерфейс HTTPS, использующий шифрование SSL, и что вам необходимо ввести учетные данные для входа в веб-интерфейс. Так что, если в веб-интерфейсе используется внутренняя логика, вы можете передавать параметры, чтобы указать, что делать, это также может сработать. Дай мне знать, что ты определяешь. Pimp Juice IT 6 лет назад 0
@ Spittin'IT К сожалению, API принимает запросы только на информацию о пользователях и организациях ... это очень и очень ограниченный API. В противном случае, я хотел бы попробовать это! Я ценю ваши идеи, я хотел бы действовать на них. В настоящее время я все еще жду ответа от нашего администратора электронной почты / ИТ. Odinson 6 лет назад 0
Из-за ограничений LMS и внутренних возможностей мне пришлось вручную планировать отчет на еженедельной основе. Затем я нашел скрипт powershell, который позволяет мне объединять (добавлять) файлы вместе. После того как я соберу их все вместе, я просто использую электронную таблицу в качестве источника и использую Power BI, чтобы получить нужные мне значения. @ McDonald's Спасибо за вашу помощь. Хотелось бы реализовать что-то из ваших идей, так как это действительно облегчит жизнь. Odinson 6 лет назад 0

0 ответов на вопрос

Похожие вопросы