Обновить
64K+

SQL *

Формальный непроцедурный язык программирования

62,68
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

TDD для хранимых процедур Oracle

Время на прочтение11 мин
Охват и читатели20K

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


Погуглив немного, мы обнаружили, что в штатном инструментарии Oracle SQL Developer [1] есть функционал для создания автоматизированных тестов. Мы тут же приступили к его изучению. И хотя тесты для самой сложной процедуры пришлось создавать уже после её написания, этот инструментарий всё же помог нам устранить несколько ошибок, а также существенно облегчил процесс расширения функционала и рефакторинга. Ниже я приведу пример использования TDD для построения хранимых процедур, а также поделюсь опытом в работе с инструментарием.

Читать дальше →

База свободных репозиториев Github доступна через интерфейс BigQuery

Время на прочтение16 мин
Охват и читатели13K

2,8 млн репозиториев, 3 ТБ исходного кода и метаданных




Google в сотрудничестве с Github выложила для общественного пользования полную актуальную базу всех open-source репозиториев через интерфейс BigQuery. (Проверка свободной лицензии осуществляется через API.)

Наборы данных Google BigQuery Public Datasets содержат информацию о более чем 2,8 млн свободных репозиториев, о более чем 2 млрд файлов (исходный код последних версий 163 млн файлов), 145 млн коммитов и т.д. Общий размер базы — около 3 терабайт.

Раньше архивы Github выкладывались на Github Archive. Теперь всё это богатство доступно для полнотекстового поиска и анализа через простые SQL-запросы. Github обещает обновлять наборы данных еженедельно.
Читать дальше →

Telegram bot и PostGIS

Время на прочтение3 мин
Охват и читатели34K
О реализации ботов для месседжера Telegram на сайте было уже довольно много постов. Но есть одна тема, которая, на мой взгляд, еще не была затронута. Это реализация работы с геолокацией внутри бота. В данном посте я приведу пример того, как можно обрабатывать ботом информацию о геолокации, посылаемую пользователями, опираясь на собственный опыт реализации бота aroundus_bot.



Читать дальше →

Путешествие запроса Select через внутренности Постгреса

Время на прочтение9 мин
Охват и читатели30K
До конференции PG Day'16 Russia остались считанные дни, расписание можно посмотреть на нашем сайте. Мы трудимся в поте лица, но тем не менее успеваем готовить для вас переводы самых интересных материалов о PostgreSQL. Сегодня представляем вашему вниманию перевод статьи Pat Shaughnessy о поведении запроса Select.

Готовясь летом к этой презентации, я решил изучить некоторые части исходного кода PostgreSQL на C. Я запустил очень простой запрос select и наблюдал, что Постгрес с ним делает, с помощью LLDB, отладчика C. Как Постгрес понял мой запрос? Как он нашел данные, которые я искал?



Этот пост — неформальный журнал моего путешествия через внутренности PostgreSQL. Я опишу пройденный мной путь и то, что я видел в процессе. Я использую серию простых концептуальных диаграмм, чтобы объяснить, как Постгрес выполнил мой запрос. В случае, если вы понимаете C, я также оставлю вам несколько ориентиров и указателей, которые вы можете поискать, если вдруг решите покопаться во внутренностях Постгреса.

Исходный код PostgreSQL восхитил меня. Он оказался чистым, хорошо задокументированным и простым для понимания. Узнайте сами, как Постгрес работает изнутри, присоединившись ко мне в путешествии в глубины инструмента, которым вы пользуетесь каждый день.
Читать дальше →

Смотрите записи докладов виртуального форума «Данные. Технологии. SQL Server 2016»

Время на прочтение2 мин
Охват и читатели5.3K


Доступны записи докладов форума в высоком качестве на Channel9. Программа форума была разделена на 3 трека, см. описание ниже, доклады из каждого трека доступны по ссылке channel9.msdn.com/Events/data-platform-russia/Virtual-Forum-data-technologies-SQL-Server-2016

SQL Server 2016: новые стандарты в мире OLTP. Трек посвящен возможностям новой платформы по повышению производительности и безопасности процессов. Так, скорость обработки транзакций на новой платформе выше в 30 раз, а запросов – в 100 раз, по сравнению с дисковыми реляционными базами. Безопасность системы обеспечивается современными инструментами Always Encrypted и Role Level Security.

Бизнес-аналитика: SQL, Power BI, R, Mobile. Обсуждение вариантов практического применения SQL Server 2016 для разработки интеллектуальных приложений, способных анализировать данные и организовывать их в умные системы с помощью технологий бизнес-аналитики BI, а также использования языка R.

Azure: новое поколение решений для аналитики, Big Data& IoT. Доклады об обеспечении автоматизации критически-важных процессов в компании благодаря умным аналитическим системам, машинному обучению и ботам, а также интеграции в облако с возможностью масштабирования ИТ-инфраструктуры.
Несколько самых интересных записей под катом

Полный список инструментов и утилит для Microsoft SQL Server

Время на прочтение7 мин
Охват и читатели48K

Полезные платные и бесплатные утилиты, инструменты для Microsoft SQL Server — полный список из 165 инструментов.

Читать дальше →

SQL Server 2016 Stretch Database

Время на прочтение8 мин
Охват и читатели11K


Первого июня состоялся релиз SQL Server 2016, который привнес в привычную разработку большое число нововведений, среди которых уже давно анонсированную технологию Stretch Database, позволяющую динамически переносить «горячие» и «холодные» данные из SQL Server в Azure.

С точки зрения маркетинга, Stretch Database очень хорошо распиарили. Приводили разумные аргументы, что по мере накопления в базе исторических данных возрастает сложность и стоимость её эксплуатации. И предлагали разумное решение — автоматический перенос архивных данных по мере устаревания в «облако». Честно признаюсь, идея мне понравилась.

Начиная с SQL Server 2016 RC0 я начал тестировать технологию Stretch Database на двух проектах, которые помогаю развивать. Первый — это трекер рабочего времени для которого характерна OLTP нагрузка, второй — внутренний проект с DW нагрузкой.
Подробнее

Как sql-запросом извлечь из базы данных информацию, которой там нет

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели38K

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


Приходят пользователи и просят: «Вот мы внесли данные в базу, а скажите нам, чего не хватает? Какие данные мы ещё не внесли в базу и их не хватает для полного счастья?»
Первая (и скажем честно, весьма глупая) реакция: «Как же я вам найду то, чего нет в базе данных?».


Но отбросим эмоции и применим логику. Ведь, как правило, требуются данные, формирование которых подчиняется некоему правилу — номера квитанций, справок и так далее… И я исхожу из того, что все эти номера и идентификаторы могут быть преобразованы в натуральную последовательность.
То есть задача будет сформулирована следующим образом: в базе данных хранится последовательность натуральных чисел, в которой есть пропуски, и необходимо вывести пропущенные числа для пользователя.
В такой формулировке задача уже выглядит достаточно простой. Более того — возникает желание реализовать эту задачу одним единственным sql-запросом.

Читать дальше →

Яндекс открывает ClickHouse

Время на прочтение14 мин
Охват и читатели173K
Сегодня внутренняя разработка компании Яндекс — аналитическая СУБД ClickHouse, стала доступна каждому. Исходники опубликованы на GitHub под лицензией Apache 2.0.



ClickHouse позволяет выполнять аналитические запросы в интерактивном режиме по данным, обновляемым в реальном времени. Система способна масштабироваться до десятков триллионов записей и петабайт хранимых данных. Использование ClickHouse открывает возможности, которые раньше было даже трудно представить: вы можете сохранять весь поток данных без предварительной агрегации и быстро получать отчёты в любых разрезах. ClickHouse разработан в Яндексе для задач Яндекс.Метрики — второй по величине системы веб-аналитики в мире.

В этой статье мы расскажем, как и для чего ClickHouse появился в Яндексе и что он умеет; сравним его с другими системами и покажем, как его поднять у себя с минимальными усилиями.
Читать дальше →

Delayed Durability или история о том как получилось ускорить выполнение автотестов с 11 до 2,5 минут

Время на прочтение10 мин
Охват и читатели14K


Относительно недавно я начал помогать на новом для себя продуктовом проекте, который на поверку разрабатывается как бесплатный веб-сервис для трекинга рабочего времени.

Стек технологий был изначально выбран мелкомягкий, а в качестве хранилища данных использовался SQL Server 2014 Express. Одним из первых тасков, которые мне поручили — это поисследовать возможность ускорения автотестов.
Подробнее

Полный список флагов трассировки Microsoft SQL Server

Время на прочтение64 мин
Охват и читатели30K

Microsoft SQL Server Флаги Трассировки


Полный список Microsoft SQL Server флагов трассировки (359 флагов трассировки на текущий момент).


ПОМНИТЕ: Будьте предельно осторожны с флагами трассировки, проверяйте их влияние в первую очередь в тестовой среде.

Читать дальше →

Ближайшие события

Подводные камни при использовании Linked Server

Время на прочтение5 мин
Охват и читатели31K
В нашу компанию пришел достаточно интересный проект, связанный с обработкой очереди задач. Проект был разработан ранее другой командой. Нам необходимо было разобраться с проблемами, возникающими при большой нагрузке на очередь, и, соответственно, исправить найденные.

Если вкратце, то проект из себя представляет несколько БД и приложений, расположенных на разных серверах. «Задача» в данном проекте – это хранимая процедура или .Net приложение. Соответственно «задача» должна быть выполнена на определённой БД и на определенном сервере.

image
Читать дальше →

Смотрите запись открытия виртуального форума «Данные. Технологии. SQL Server 2016»

Время на прочтение1 мин
Охват и читатели2.6K


Программа форума разделена на 3 технологические сессии, которые проходили параллельно:

SQL Server 2016: новые стандарты в мире OLTP. Трек посвящен возможностям новой платформы по повышению производительности и безопасности процессов. Так, скорость обработки транзакций на новой платформе выше в 30 раз, а запросов – в 100 раз, по сравнению с дисковыми реляционными базами. Безопасность системы обеспечивается современными инструментами Always Encrypted и Role Level Security.

Бизнес-аналитика: SQL, Power BI, R, Mobile. Обсуждение вариантов практического применения SQL Server 2016 для разработки интеллектуальных приложений, способных анализировать данные и организовывать их в умные системы с помощью технологий бизнес-аналитики BI, а также использования языка R.

Azure: новое поколение решений для аналитики, Big Data& IoT. Доклады об обеспечении автоматизации критически-важных процессов в компании благодаря умным аналитическим системам, машинному обучению и ботам, а также интеграции в облако с возможностью масштабирования ИТ-инфраструктуры.

Виртуальный форум открылся с рассказа об основных трендах в области обработки данных и об инновациях, представленных в продуктах Microsoft, в том числе в новейшем SQL Server 2016
Смотрите запись открытия виртуального форума

Небольшая особенность CHAR и VARCHAR

Время на прочтение3 мин
Охват и читатели13K

Предыстория



Есть небольшой сервер, на котором крутится стандартный LAMP. Все началось с того, что подходит ко мне QA и говорит: «Есть тема, мне нужно перепроверить регистрацию пользователей, можешь удалить старый аккаунт?», «Не вопрос» — ответил я. Суть в том, вход у нас сделан только через социалки. Что бы не нарушать целостность базы удалением аккаунта, я решил просто взять и переименовать UID (пользовательский ID в конкретной социальной сети) в таблице.
Так как UID у всех разный (vk, facebook, google… — числовой UID, linkedin — строковый UID) был использован VARCHAR для хранения. В итоге я добавил символ нижнего подчеркивания `_` к строке, и со спокойной душой отписался: «Проверяй...».

image

Читать дальше →

Примите участие в виртуальном форуме «Данные. Технологии. SQL Server 2016»

Время на прочтение2 мин
Охват и читатели3.3K


Один самых значимых трендов ближайшего десятилетия – лавинообразный рост объемов данных, который определяет развитие облачных технологий, машинного обучения и интернета вещей. Это требует новых подходов и решений в устоявшихся и широко известных технологиях, таких как реляционные базы данных и бизнес-аналитика.
Подробнее о форуме и докладчиках