Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Как мы настроили поиск с помощью Elasticsearch и Logstash по данным MSSQL

Блог компании True EngineeringПоисковые технологии.NET

Делимся подробностями, как мы сделали хороший поиск по закрытой корпоративной соцсети в условиях, когда:


• данные хранятся в разных колонках таблиц MSSQL,
• раньше поиска по ним не было,
• а перенести их оттуда дорого — вся система завязана на MSSQL. Использовать сторонние сервисы не получится по соображениям информационной безопасности.


Критерий хорошего поиска для нас звучит так: даже если пользователь ввел запрос с опечаткой или неточно указал название группы, то всё равно нашёл её.


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


Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Просмотры11K
Комментарии 6

Изменение размеров изображений на сайте

Разработка веб-сайтовОбработка изображений
Добрый день. Я разработчик с более чем 10-летним стажем. Для того, чтобы оценить качество исходного кода сайтов, не без доли самоиронии, я создал небольшой чек-лист. Сегодня я поговорю о важном для меня пункте — изображения на сайтах. Я умышленно опустил конкретную технологию, потому что эта проблема встречалась и встречается повсеместно, я буду очень признателен, если в комментариях вы раскроете свои подходы с использованием вашего стека технологий, в конечном итоге мы все очень похожи.


Читать дальше →
Всего голосов 24: ↑19 и ↓5 +14
Просмотры11.2K
Комментарии 19

ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core

MySQLPostgreSQL.NETMicrosoft SQL ServerSQLite

Привет! Сегодня я выпустил новую версию ThinkingHome.Migrator — инструмента для версионной миграции схемы базы данных под платформу .NET Core.


Пакеты опубликованы в NuGet, написана подробная документация. Вы уже можете пользоваться новеньким мигратором, а я расскажу, как он появился, почему у него номер версии 3.0.0 (хотя это первый релиз) и зачем он нужен, когда есть EF Migrations и FluentMigrator.

Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры4.8K
Комментарии 24

Перенос базы данных в более старую версию MS SQL Server

Системное администрированиеСерверное администрированиеMicrosoft SQL ServerАдминистрирование баз данныхРазработка под Windows
Tutorial


У вас есть база данных MS SQL Server, которую нужно перенести на другой физический комп. Вы уже сделали бэкап и радостно приступаете к восстановлению. Но тут обнаруживается, что на том компе, куда нужно перенести базу, установлена более старая версия MS SQL Server. Stack Overflow уверяет вас, что всё плохо. Но так ли это на самом деле?
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Просмотры21.3K
Комментарии 22

Реконсиляция — проверка целостности данных в распределенных системах

.NETSQLРаспределённые системыМикросервисы


При разработке и использовании распределенных систем перед нами возникает задача контроля целостности и идентичности данных между системами — задача реконсиляции.


Требования, которые выставляет заказчик — минимальное время данной операции, поскольку чем раньше расхождение будет найдено, тем легче будет устранить его последствия. Задача заметно усложняется тем, что системы находятся в постоянном движении (~ 100 000 транзакций в час) и добиться 0% расхождений не получится.

Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры15.9K
Комментарии 11

Мониторинг Windows серверов на чистом MS SQL, и как я это тайно внедрил

SQLIT-инфраструктураСерверное администрированиеIT-компании
Однажды, в далекой-далекой галактике, была фирма, давно выросшая из стартапа, но которая по прежнему оставалась довольно компактной и эффективной. Фирма хостила (на своем железе) сотни Windows-серверов, и это надо было как то мониторить. Еще до того, как я в нее пришел, в качестве решения была выбрана система NetIQ.

Настраивать NetIQ поручили мне, и тот, кто это делал до меня, не сказал о ней ни единого слова. Печатного. Вскоре я понял, почему. Стив Джобс наверное вертится в могиле, глядя на подобный интерфейс:

image

В одной строчке логика «птички» положительная (Raise event). В другой отрицательная (Do not raise event). Как работает «Only raise events when» с разным набором галочек я вообще понял только экспериментально (и уже забыл).
Читать дальше →
Всего голосов 48: ↑47 и ↓1 +46
Просмотры23.6K
Комментарии 86

Как запустить SQL Profiler Trace ночью, в определенное время?

SQLСерверное администрированиеMicrosoft SQL ServerАдминистрирование баз данных
Как запустить SQL profiler trace, когда проблему надо ловить с 3:00 до 3:30 утра? Делать это можно с помощью трейса на стороне сервера, но это крайне неудобно. Именно не сложно, а неудобно, и всегда лень. Наконец я решился автоматизировать это раз и навсегда. Вот так:


Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Просмотры2.5K
Комментарии 3

Между безопасностью и паранойей: тенденции больших корпораций

Информационная безопасностьIT-инфраструктураСерверное администрированиеАдминистрирование баз данныхКарьера в IT-индустрии
Наблюдение за бытом больших корпораций вгоняет меня в депрессию. Это дикая паранойя и одновременно жуткие, зияющие дыры в безопасности. Впрочем, возможно эти вещи как раз связаны — ведь параноик сфокусирован на определенных вещах, и легко может проглядеть очевидное. Он может выйти на улицу, отчаянно шурша фольгой, в которую завернулся с ног до головы, и быть сбитым автобусом.


Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Просмотры5.9K
Комментарии 10

Утро админа: добавляем место на десятках серверов за кофе

ВиртуализацияСерверное администрированиеMicrosoft SQL ServerАдминистрирование баз данных
Каждый день мне приходится добавлять место на одном, двух, трех, пяти, а бывает – и десяти database серверах. Почему? Потому что для них характерен естественный рост баз. Серверов сотни, все они виртуалки с дисками на thin provisioning. Если им заранее выдать много места, то будет обязательно какой нибудь “runaway”, типа апгрейда с переливом таблиц, который пожрет все это место, а если не пожрет, то поднадкусает. Как вы знаете, thin provisioning – это путь в одну сторону, если место сожрано, но то его назад не вернуть.

В итоге большинство серверов болтаются где то у границы 90% space used – именно потому, что на границе 90% срабатывает алерт. Как только я даю немного, именно немного места – сервер отправляется в район 80%-85% used, и через месяц другой место надо добавлять снова. И, тем не менее, много сразу давать не буду – слишком много прецедентов с runaways.

Я так часто делал механическую работу по расширению места на дисках, что мне это надоело и я решил это автоматизировать с помощью Jenkins:


Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры5.8K
Комментарии 26

Lambda-функции в SQL… дайте подумать

Анализ и проектирование системSQL
image

О чем будет статья, и так понятно из названия.

Кроме того, автор объяснит, зачем с его точки зрения это нужно, а также расскажет, что SUBJ не просто модная технология, но и «дело вдвойне нужное — как приятное, так и полезное».
Читать дальше →
Всего голосов 17: ↑13 и ↓4 +9
Просмотры7.7K
Комментарии 30

Открытый вебинар «Порядок выполнения запроса SELECT и план запроса в MS SQL Server»

Блог компании OTUSSQLMicrosoft SQL Server
И снова привет!

Коллеги, в последний день января мы запускаем курс «MS SQL Server разработчик», в связи с чем у нас прошёл тематический открытый урок. На нём мы поговорили о том, как MS SQL Server выполняет запрос SELECT, обсудили, в каком порядке и что анализируется, а также немного погрузились в чтение плана запроса.

Преподаватель — Кристина Кучерова, архитектор модели данных в Сбербанке России.

Читать дальше →
Всего голосов 27: ↑24 и ↓3 +21
Просмотры15.8K
Комментарии 10

Вариант клонирования БД для разработки/тестирования

Администрирование баз данных
Вкратце опишу как организовал клонирование БД (создание нескольких экземпляров БД из одного бэкапа) на текущем проекте. Способ позволяет сэкономить время и место на жестком диске.

Ситуация: есть толстая БД (скажем, сотня Гб). Хочется иметь эту базу со всеми данными отдельно для каждого разработчика и не тратить на это терабайтный диск. Далее приведено решение для MSSQL под windows с использованием powershell.

Наткнулся на утилиту SQL Clone от Redgate. На сайте есть описание как она работает. Самая суть в использовании такой штуки: differencing virtual hard disk. На русский это переводится как «разностный виртуальный диск» — диск на котором хранится только разница относительно «родительского» диска.

Подробности под катом
Читать дальше →
Всего голосов 24: ↑18 и ↓6 +12
Просмотры6.4K
Комментарии 11

Опасен ли SQL profiler?

SQLMicrosoft SQL ServerАдминистрирование баз данных
Недавно с некоторым удивлением узнал, что в одном из департментов огромной фирмы, где я работаю, запрещен запуск SQL profiler в business hours.

Читать дальше →
Всего голосов 24: ↑16 и ↓8 +8
Просмотры17K
Комментарии 20

Entity Framework 6 with Full-Text Search via LINQ

.NET

Хочу поделиться своим костылем в решении довольно банальной проблемы: как подружить полнотекстовый поиск MSSQL c Entity Framework. Тема очень узкоспециальная, но как мне кажется, актуальна на сегодняшний день. Интересующихся прошу под кат.

Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры7.5K
Комментарии 5

Обзор бесплатного инструмента SQLIndexManager

.NETSQLMicrosoft SQL ServerАдминистрирование баз данныхC#
Tutorial
Как известно индексы играют важную роль в СУБД, предоставляя быстрый поиск к нужным записям. Потому так важно их своевременно обслуживать. Об анализе и оптимизации написано достаточно много материала, в том числе и в Интернете. Например, недавно делался обзор данной темы в этой публикации.

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

Далее рассмотрим бесплатную утилиту SQLIndexManager, автором которой является AlanDenton.
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры8.2K
Комментарии 26

Почему не SQL?

Блог компании lsFusionOracleПрограммированиеSQLMicrosoft SQL Server


Без преувеличения можно сказать, что SQL — один из самых распространенных в мире языков. Информационные системы могут быть написаны на Java, Python, JavaScript, C#, PHP и десятке других языков, но SQL база в том или ином виде будет в абсолютном большинстве таких систем. Среди бизнес-приложений процент систем, использующих SQL, вообще стремится к 100%.

При этом большинство существующих материалов о SQL на хабре и других ресурсах сводятся к простым вопросам, вроде: «какие типы соединений бывают», «чем левое соединение отличается от правого», «что такое триггеры» и так далее. Более того, в этих материалах практически ничего не говорится о проблемах SQL (и его реализациях), которых на самом деле очень и очень немало. Поэтому мы решили восполнить оба этих пробела: с одной стороны рассказать, как многие вещи в SQL работают изнутри, а с другой стороны — почему они работают не так как нужно / хотелось бы.

При этом речь в статье пойдет не о «вкусах и цветах фломастеров». Все затрагиваемые проблемы носят фундаментальный характер: присутствуют при разработке практически любой информационной системы и не ограничиваются «красотой кода», а в той или иной степени приводят либо к критическому падению производительности, либо к существенному росту порога вхождения, либо к значительным трудозатратам со стороны разработчика.
Читать дальше →
Всего голосов 92: ↑87 и ↓5 +82
Просмотры62.3K
Комментарии 178

Бэкап файловых и SQL баз 1С (в облако и с шифрованием)

Системное администрирование
В этой статье я хочу поделиться опытом резервного копирования файловых и SQL баз 1С в локальное, сетевое и облачное (на примере Google Drive) хранилище с помощью Effector Saver.

ПО является платным: 2500₽.
Переход на новую версию (с 3 на 4) также является платным: 1250₽.

Писал инструкцию для друга, но думаю она пригодиться и кому-то из вас.

И как всегда, в комментариях, вы научите меня чему-то новому =)

В конце инструкции приведен пример журнала, по которому хорошо видна скорость выполнения задачи.

Цель:
Автоматическое создание шифрованных бэкапов по расписанию с отчётом об ошибках на почту.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры16.1K
Комментарии 10

ImportExportDataSql — бесплатный конвертер данных MSSQL

.NETSQLMicrosoft SQL Server

Введение


Очень часто возникает задача конвертации данных из одной БД в другую, из внешнего файла разного формата в БД и наоборот. При этом типы данных внутри БД могут быть не только текстовые, но и бинарные (binary или varbinary). Бинарные и текстовые данные, как известно, в SQL Server Management Studio обрезаются и не выводятся полностью. В связи с этими недостатками пришлось написать свое приложение для конвертации данных в/из MSSQL на языке C# (.NET Framework 4.0). Приложение называется ImportExportDataSql и изначально он создавался именно для конвертации из бинарных полей БД в файлы, но потом функционал расширялся. Приложение портативное, без рекламы и не требует доступа в Интернет.

Возможности приложения


  1. Результат SQL-запроса выборки данных генерит данные в SQL-формате с проверкой наличия записи в таблице по указанному пользователем условию WHERE
  2. Несколько результатов SQL-запросов объединяются в один файл, если пользователь укажет в разных задачах одинаковое имя выходного файла
  3. Все настройки хранятся в XML файле
  4. Возможность запуска из консоли
  5. Быстрая загрузка/выгрузка в БД при работе с CSV
  6. Возможность загружать Excel-файлы в двух режимах
  7. Выполняются только отмеченные задачи
  8. Задачи, выполненные с ошибками подсвечиваются красным цветом, а без ошибок — зеленым. Сообщение об ошибке при этом выводится не только в лог, но и в виде всплывающей подсказки напротив строки, где возникла ошибка

Интерфейс приложения


При запуске приложения необходимо соединиться с БД.



После успешного соединения с БД отображается список задач.


Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры8K
Комментарии 22

Ведение разработки БД. Шаблоны создания/изменения объектов MSSQL

SQLMicrosoft SQL Server

image


При постоянной работе с MSSQL необходимо создавать различные объекты БД: таблицы, представления, триггеры и т.д.


В статье приведу шаблоны SQL запросов, которые помогут, и, возможно, стандартизируют подход создания кода на языке T-SQL.


Кроме этого, опишу о том, как я веду репозиторий БД в системе контроля версий.

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры3.8K
Комментарии 8

MVCC как один из способов обеспечения изоляции транзакций

Блог компании OTUSВысокая производительностьАнализ и проектирование системАдминистрирование баз данныхПромышленное программирование
Привет, хабр. Меня зовут Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Специально к старту нового набора на курс «Архитектор высоких нагрузок» я написал небольшой материал, которым с радостью делюсь с вами.



Введение


В прошлый раз мы поговорили с вами о том, к чему приводит ослабление изоляции транзакций в базах данных. Сегодня мы обсудим более подробно один из способов обеспечения этой самой изоляции и избегания рассмотренных аномалий. Как вы могли заметить, в прошлой статье часто выделялись два подхода: один был основан на том, что у записей есть некоторые версии, а второй на том, что мы будем запись так или иначе блокировать. Таким образом, выделяются два класса баз данных: версионники и блокировочники. Сегодня мы поговорим о том, что из себя представляют версионники, а рассмотрение блокировочников оставим на следующий раз.
Читать дальше →
Всего голосов 15: ↑10 и ↓5 +5
Просмотры2.6K
Комментарии 3