Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Загрузка файлов статистики в таблицу. / 7 сообщений из 7, страница 1 из 1
04.07.2018, 10:46
    #39669304
ScottTiger17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка файлов статистики в таблицу.
Добрый день!

Посоветуйте с архитектурой решения.

Есть статистика с сайта, которая несколько раз в день (~ каждые 2-3 часа) выгружается в папку в виде flat файлов с именами вила datafile_YYYYMMDD_HHMM.
Есть задача написать джоб, который будет проверять наличие нового файла в папке и когда появляется новый файл, загружать этот файл в базу.

Как лучше всего реализовать подобное?

Спасибо.
...
Рейтинг: 0 / 0
04.07.2018, 10:50
    #39669306
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка файлов статистики в таблицу.
ScottTiger17Есть задача написать джоб, который будет проверять наличие нового файла в папке и когда появляется новый файл, загружать этот файл в базу.

Как лучше всего реализовать подобное?Так и сделать - написать джоб.
Загрузку можно делать либо SSIS пакетом, либо BCP
В джобе соответственно либо вызывать пакет, либо SQL скрипт, проверяющий наличие нового файла, и вызывающий BCP
...
Рейтинг: 0 / 0
04.07.2018, 10:59
    #39669316
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка файлов статистики в таблицу.
ScottTiger17Добрый день!

Посоветуйте с архитектурой решения.

Есть статистика с сайта, которая несколько раз в день (~ каждые 2-3 часа) выгружается в папку в виде flat файлов с именами вила datafile_YYYYMMDD_HHMM.
Есть задача написать джоб, который будет проверять наличие нового файла в папке и когда появляется новый файл, загружать этот файл в базу.

Как лучше всего реализовать подобное?

Спасибо.

зависит от того, каким инструментом (лучше) владеете

если сильны в скриптах, то можно написать батник/powershell, который будет брать новый файл и, используя BCP, грузить данные в базу

вариант по-сложнее: используя SSIS, создать пэкедж, который будет делать то же самое

еще вариант (чисто для широты выбора): используя T-SQL написать скрипт, который используя xp_dirtree & bulk insert будет делать то, что вам нужно

пока писал, вспомнил про FileTables :
https://docs.microsoft.com/en-us/sql/relational-databases/blob/load-files-into-filetables?view=sql-server-2017


так что, выбирайте на свой вкус, силы и подходящий для ваших условий
...
Рейтинг: 0 / 0
04.07.2018, 11:35
    #39669350
ScottTiger17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка файлов статистики в таблицу.
komrad,

Спасибо, а есть а есть плюсы/минусы у каждого из этих 3 подходов? Нет опыта работы с данными тасками, какой из методов чаще применяют на продакшен средах?
...
Рейтинг: 0 / 0
04.07.2018, 11:57
    #39669378
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка файлов статистики в таблицу.
ScottTiger17komrad,

Спасибо, а есть а есть плюсы/минусы у каждого из этих 3 подходов? Нет опыта работы с данными тасками, какой из методов чаще применяют на продакшен средах?
безусловно, у каждого есть свои плюсы и минусы
и они будут разными в зависимости от вашей среды и стандартов компании

На вскидку:
батник/скрипт - просто, но меньше диагностики ошибок, если что-то идет не так (надо всё писать самому)
SSIS - мощно, более корпоративное решение, отладка и диагностика встроена и доступна, но требует знания инструмента и времени на создание решения
T-SQL - для любителей процедур и нелюбителей скриптов и BI, всё решение внутри SQL сервера, но сильно отдает экстравагантностью
FileTables - не скажу ничего, т.к. не сталкивался непосредственно. Хотя, судя по описанию и возможностям, может самое оптимальное для вас.


Разумный тренд: не усложнять среду и придерживаться унифицированного подхода, не создавать зоопарк. Это облегчит последующую поддержку и сопровождение.


Я бы сказал, что если у вас широко используются SSIS, то лучше делать на нем. Если преобладают скрипты, то делать скриптами.


Не вникая в детали, я бы пошел по пути Powershell и SQL Agent Job.
Тем более, что изобретать велосипед нет нужды - всё уже придумано до нас, осталось лишь только подогнать по месту напильником.

https://www.mssqltips.com/sqlservertip/3208/automating-flat-file-sql-server-imports-with-powershell/
...
Рейтинг: 0 / 0
04.07.2018, 13:47
    #39669476
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка файлов статистики в таблицу.
ScottTiger17,

если вы ничего не знаете - учите Integration Services.
...
Рейтинг: 0 / 0
04.07.2018, 16:43
    #39669602
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка файлов статистики в таблицу.
ScottTiger17komrad,

Спасибо, а есть а есть плюсы/минусы у каждого из этих 3 подходов? Нет опыта работы с данными тасками, какой из методов чаще применяют на продакшен средах?SSIS - решение для чайников, графический инструмент для импорта, куда уж проще.

Он наверное самый сложный и функциональный из всех вариантов, но это если его полностью использовать. А для импорта csv файлов будет очень просто.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Загрузка файлов статистики в таблицу. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]