yostrov: (Uncle Sam)
Американский Наблюдатель ([personal profile] yostrov) wrote2016-06-07 03:33 pm
Entry tags:

Подработка

Пост из серии "дурака работа любит".
Эпиграф: "Чтоб ты жил на одну зарплату!" (старое советское проклятие)

Зарплата у меня хорошая. Маленькая, но хорошая. Но все же со следующей недели буду подрабатывать в fast food ресторане.
Не знаю, на сколько меня хватит: основную работу бросать не собираюсь, хотя зарплата в ресторане немного больше и они зовут на постоянную работу. Пока подписался на 4 месяца.

Пришлось срочно менять планы: собирались поехать на океан на следующей неделе, а поедем только на три дня послезавтра.

[identity profile] yostrov.livejournal.com 2016-06-08 12:09 am (UTC)(link)
C# + SQL требует отдельный сервер, кучу драйверов и гораздо сложнее в написании
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 12:20 am (UTC)(link)
Windows Service выполняется на любом Windows-компьютере.

Никаких специальных драйверов не надо - они часть .NET Framework.

Сложнее в написании - только если в первый раз.

Можешь описать типичную задачу, которую ты решаешь с помощью SSIS?
Кто использует то, что ты написал?

[identity profile] yostrov.livejournal.com 2016-06-08 12:31 am (UTC)(link)
Я делал C# + SQL пакеты для UPS. Там был стандатртный EDI файл на входе, из которого мне надо было 10%

Любое изменение .NET кода требует множества усилий. SSIS - один файл и легко копируется на разные сервера, не требуя изменений.

Совмещать application и DB сервера в одном - плохая практика.

Типичная задача - собрать XML файлы с десятка FTP серверов и загрузить в SQL базу.

>Кто использует то, что ты написал?
http://yostrov.livejournal.com/30070.html
Edited 2016-06-08 00:33 (UTC)

[identity profile] olga-mw.livejournal.com 2016-06-08 01:05 am (UTC)(link)
"Совмещать application и DB сервера в одном - плохая практика. "

вот кровью под этим подпишусь много этого тут до неприличья.
Расскажи про проект если будет шанс ну просто интересно.

[identity profile] yostrov.livejournal.com 2016-06-08 01:11 am (UTC)(link)
Первая задача - систематизировать overnight сбор данных со всех POS.

[identity profile] olga-mw.livejournal.com 2016-06-08 01:15 am (UTC)(link)
В реале или лог? Идет апдейт или с-до а до+1-финальное состояние?

[identity profile] yostrov.livejournal.com 2016-06-08 01:26 am (UTC)(link)
Лог. Сейчас десяток разных систем, по типам POS.

В моем стартапе - в реале, через WebService

[identity profile] olga-mw.livejournal.com 2016-06-08 01:35 am (UTC)(link)
Вангую: нет прямого фида на аппаратуру. Оптимизация?

[identity profile] yostrov.livejournal.com 2016-06-08 01:38 am (UTC)(link)
Kак файл попадает на FTP - Не мои проблемы.

[identity profile] olga-mw.livejournal.com 2016-06-08 01:45 am (UTC)(link)
А у меня вот полный аппаратный фид. Тоесть данные ко мне на алгоритм (NN classification) потом backfeed и опять классификация и так много раз. А не написана пока обработка для неклассифицированного ("что там спрятано внутри").
Начальный фид распределен.
Такая жизнь.
Локхид совсем рядом делает похожее но с аппаратным фидом я туда хочу но мне слабо потому что локхид и дети-малосовместимы. Я даже не подавала после фиаско с одной классной конторкой в которой был очень вкусный проект.

(no subject)

[identity profile] 10-4.livejournal.com - 2016-06-08 20:44 (UTC) - Expand

[identity profile] olga-mw.livejournal.com 2016-06-08 01:52 am (UTC)(link)
"В моем стартапе - в реале, через WebService "Вот реал меня волнует безмерно не могу кушать и спать. Потому что сканирование веба открывает совершенно адские перспективы.
Останавливает медленность процесса порождаемая проблемой классификации (размытые границы кастера).
Вот я знаю что в локхиде получится и очень хочется в этом поучаствовать вот хоть на луну вой.
Я чуть в Неваду не подалась посменно там похожая задачка была по GIS но реалии школьного пикапа после 3 вернули меня с небес (откуда эти gis берут) на твердую почву.
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 01:29 am (UTC)(link)
> Любое изменение .NET кода требует множества усилий.

Если этим занимаешься постоянно, то все эти усилия отлично автоматизируются:
1) Покрытие авто-тестами и автоматическое выполнение всех авто-тестов после code commit.
2) Создание deployment package.
3) Сам deployment to production тоже хорошо автоматизируется.

А как сделать code review SSIS package после того, как ты добавишь пару колонок?
Сколько текста поменяется в результирующем SSIS скрипте?
Ты вообще на результирующий SSIS код смотришь, или только на картинки/таблицы?

> Типичная задача - собрать XML файлы с десятка FTP серверов и загрузить в SQL базу.

Так я тоже такую же задачу постоянно решаю.
И использовать для этого SSIS мне даже в голову не приходило.
Ведь SSIS слишком неуклюжий для этого.
Например, что делать, если одного из файлов нет?
Или он не парсится по какой-то причине?
Или XML нужно предварительно разархивировать.
Или формат нестандартный.
Или скачать нужно не с FTP, а c HTTP.

Нужен же custom code для обработки таких событий. И, как правило, полноценный C# application с этим справляется гораздо лучше, чем куцый SSIS, где всё собирается на коленке.

[identity profile] yostrov.livejournal.com 2016-06-08 03:07 am (UTC)(link)
>полноценный C# application с этим справляется гораздо лучше, чем куцый SSIS
Вот только цена у них разная.
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 01:12 pm (UTC)(link)
> Вот только цена у них разная.

Я предполагаю, что в относительно простых случаях первоначальная разработка SSIS package может быть и ниже, чем у полноценного C#+SQL application, но стоимость поддержки SSIS package, вероятно, гораздо выше, чем стоимость поддержки C#+SQL application.
Нужно же как-то за всеми этими разбросанными package следить. Как-то убеждаться, что изменения ничего не поломали.
Если нормального code review изменений нет, авто-тестов нет, то куча багов обнаружатся уже только в production. Что очень, очень дорого обходится.

Теперь я лучше понимаю, почему некоторые из моих партнёров по интеграции XML feeds (на противоположной стороне) так мучаются.

[identity profile] yostrov.livejournal.com 2016-06-08 02:48 pm (UTC)(link)
>стоимость поддержки SSIS package, вероятно, гораздо выше, чем стоимость поддержки C#+SQL application.
Нет.

>Нужно же как-то за всеми этими разбросанными package следить.
Все package собираются в одном сервере, если надо.

>Как-то убеждаться, что изменения ничего не поломали.
Если есть сообщение об ошибке - значит сломали :)
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 03:27 pm (UTC)(link)
> Если есть сообщение об ошибке - значит сломали :)

А если сообщения об ошибке нет - значит ли это, что SSIS package работает правильно?

Ты, кстати, так и не ответил, можно ли просматривать изменения в SSIS package?

Код SSIS, на твой взгляд, достаточно читабельный для того, чтобы посмотреть diff?

[identity profile] yostrov.livejournal.com 2016-06-08 04:44 pm (UTC)(link)
>А если сообщения об ошибке нет - значит ли это, что SSIS package работает правильно?
Если никто ни на что не жалуется - не трогай систему!

>Ты, кстати, так и не ответил, можно ли просматривать изменения в SSIS package?
Можно. TFS например.

>Код SSIS, на твой взгляд, достаточно читабельный для того, чтобы посмотреть diff?
Глазами - нет. version control software - да. А зачем? Если надо выбрать нужный пакет из двух с одинаковыми именами, то проверяется один-два объекта обычно. В зависимости от сложности пакета, конечно.
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 08:07 pm (UTC)(link)
> Если никто ни на что не жалуется - не трогай систему!

А если нужно добавить пару полей, но, вместе с тем, убедиться в том, что feed продолжает парситься после изменения SSIS package?

Количество таблиц до и после изменения одинаковое.

Заглядываешь в TFS посмотреть изменения - а там только визуальные картинки. Очень друг на друга похожие.
Как проверить, что при изменении SSIS package ничего по-ошибке не изменили?

Пользователи, конечно, ошибку тоже найдут. Но, возможно, только через пол-года.
И будут очень, очень расстроены потерей этих данных.

dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 01:14 pm (UTC)(link)
> Совмещать application и DB сервера в одном - плохая практика.

Почему?
Они же используют разные ресурсы.

DB server, в основном, потребляет диск и память.
Application, в основном, потребляет процессор. Да и вообще мало что потребляет.

[identity profile] yostrov.livejournal.com 2016-06-08 01:18 pm (UTC)(link)
SQL сервер не только потребляет процессор, но и полностью его блокирует под себя, так же как и память.

>Application, в основном, потребляет процессор. Да и вообще мало что потребляет.
Похоже, что вы не понимаете, о чём пишете.
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 01:37 pm (UTC)(link)
> SQL сервер не только потребляет процессор, но и полностью его блокирует под себя

Вот так вот весь процессор, со всеми его 8+ ядрами?
Где про это можно прочитать?

> Похоже, что вы не понимаете, о чём пишете.

www.postjobfree.com уже много лет на одной машине имеет SQL server + IIS + Windows Service, который, загружает сотни XML feeds каждый день.

Всё работает довольно быстро.

Хотя я вполне допускаю, что на Azure так бы не получилось
:-)

[identity profile] yostrov.livejournal.com 2016-06-08 01:57 pm (UTC)(link)
У тебя свой личный сервер, на котором работает только одна задача.
В корпорациях обычно десятки и сотни задач крутятся на одном сервере, часто мешают друг другу.

https://channel9.msdn.com/Forums/Coffeehouse/IIS-and-SQL-on-the-same-server-or-VM-


Azure - он разный. Есть A0, есть D15. Еще можно сделать G5
Я стараюсь рекомендовать пользоваться не VMs, а services. Including SQL DB. Price from $5/month to $7000/month
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 02:09 pm (UTC)(link)
> У тебя свой личный сервер, на котором работает только одна задача.

У меня очень много задач.
Какие-то выполняются последовательно, какие-то параллельно в разных тредах.

Но всё это вполне умещается в IIS + single Windows Service.

> https://channel9.msdn.com/Forums/Coffeehouse/IIS-and-SQL-on-the-same-server-or-VM-

По этой ссылке нет ничего про то, что "SQL сервер не только потребляет процессор, но и полностью его блокирует под себя, так же как и память."

Возможно, ты имел ввиду вот это:
"by default it will eat up all the memory on the box given a chance"

Но ничто же не мешает ограничить память, выделяемую SQL Server-у.

> Я стараюсь рекомендовать пользоваться не VMs, а services.

Windows services или Web services?
И почему рекомендуешь?

[identity profile] yostrov.livejournal.com 2016-06-08 02:44 pm (UTC)(link)
Choose a cloud SQL Server option: Azure SQL (PaaS) Database or SQL Server on Azure VMs (IaaS)
https://azure.microsoft.com/en-us/documentation/articles/data-management-azure-sql-database-and-sql-server-iaas/


Если у меня 8 ядер - я обязан купить лицензии на все. Потом ограничивать их использование будет глупо.
dennisgorelik: 2020-06-13 in my home office (Default)

[personal profile] dennisgorelik 2016-06-08 03:24 pm (UTC)(link)
> Choose a cloud SQL Server option: Azure SQL (PaaS) Database or SQL Server on Azure VMs (IaaS)
> https://azure.microsoft.com/en-us/documentation/articles/data-management-azure-sql-database-and-sql-server-iaas/

Это ты так объясняешь почему ты рекомендуешь "пользоваться не VMs, а services"?

> Если у меня 8 ядер - я обязан купить лицензии на все.

Лицензии на SQL Server привязываются к числу процессоров, а не к числу ядер.

> Потом ограничивать их использование будет глупо.

Типичный business app потребляет гораздо меньше ресурсов, чем SQL Server.
В том числе, в сценарии ETL.

(no subject)

[identity profile] yostrov.livejournal.com - 2016-06-08 16:36 (UTC) - Expand

(no subject)

[personal profile] dennisgorelik - 2016-06-08 20:14 (UTC) - Expand

(no subject)

[identity profile] yostrov.livejournal.com - 2016-06-08 20:38 (UTC) - Expand

(no subject)

[personal profile] dennisgorelik - 2016-06-08 20:45 (UTC) - Expand

(no subject)

[identity profile] yostrov.livejournal.com - 2016-06-08 22:12 (UTC) - Expand

(no subject)

[personal profile] dennisgorelik - 2016-06-08 22:28 (UTC) - Expand

(no subject)

[identity profile] yostrov.livejournal.com - 2016-06-08 22:34 (UTC) - Expand

(no subject)

[personal profile] dennisgorelik - 2016-06-08 22:39 (UTC) - Expand

(no subject)

[identity profile] yostrov.livejournal.com - 2016-06-08 23:05 (UTC) - Expand