Обновить
7.85

Oracle *

Система управления базами данных

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

7 ошибок ETL-разработчика

Время на прочтение11 мин
Количество просмотров61K
Проекты хранилищ данных уже давно являются частью IT-инфраструктуры большинства крупных предприятий. Процессы ETL являются частью этих проектов, однако разработчики иногда совершают одни и те же ошибки при проектировании и сопровождении этих процессов. Некоторые из этих ошибок описаны в этом посте.
Читать дальше →

Sublime text для PL/SQL разработчика

Время на прочтение6 мин
Количество просмотров24K
Хотелось рассказать о том, как многими любимый Sublime Text можно использовать как неплохое средство для разработки на PL/SQL.

Хотелось бы начать с того, для чего нужен был этот велосипед, ведь есть вроде бы много других IDE для работы с SQL и в частности Oracle PL/SQL, такие как Toad for Oracle, SQL Navigator, PL/SQL Developer и даже бесплатный Oracle SQL Developer, однако у большинства из них есть несколько недостатков по сравнению с текстовыми редакторами типа Emacs, SciTe, Vim, Notepad++, Sublime Text и т.д.

Перечислю некоторые из них, данный список сугубо субъективный:

  • “Тяжеловесность” каждой IDE, это выражается не только в размере дистрибутива, но и общими ощущениями, наличием множества не нужных функций, кнопок, отзывчивостью и т.д.
  • Большинство приемлемых IDE являются платными, или условно бесплатными с ограниченным функционалом.
  • Хотелось бы кроссплатформенность, под это требование из приведенных IDE попадает только Oracle SQL Developer.
  • Функционал редактирования текста. В большинстве из них есть только базовые методы по работе с текстом: это набор текста, copy-paste, подсветка синтаксиса. Ни о каких “CTRL+D” как Sublime Text речи и не идет.
  • Простота расширения, практически все IDE закрыты, никакой поддержки самописных пагинов и т.д.

Есть еще один пункт, но он больше относится к организации проектов и задач на рабочем месте. Хотелось бы немного затронуть эту тему, так как организация на проектах наложила свой отпечаток на настройку Sublime Text.
Читать дальше →

Кадры высокого полета — облачный HR и большие данные

Время на прочтение7 мин
Количество просмотров3.9K
Эта статья — не о больших данных. Мы рассмотрим возможность использования Big Data для эффективного развития трудовых ресурсов, а значит, и наиболее эффективного развития организации в целом. И начнем мы с тенденций, складывающихся в области работы с персоналом во всем мире сегодня.


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

Параллельная обработка большого селекта в нескольких сессиях

Время на прочтение10 мин
Количество просмотров22K
Представьте: есть селект, который возвращает записи, каждую из которых нужно обработать, и то ли много записей, то ли обработка каждой записи занимает много времени, а процесс обработки одной записи не зависит от процессов других записей.
Классический пример для того, чтобы задействовать многопоточность или в случае баз данных выполнять обработку в нескольких сессиях. В Оракле для этого используется hint /*+ parallel() */ и pipelined functions. Это здорово, но если у вас Oracle standard edition(где parallel не работает) или вы хотите обработать не каждую запись по отдельности(из соображений, что лучше накопить работу, а потом в bulk, одним ударом, выполнить), а поделить весь вывод селекта на куски и каждый обработать отдельно?
Читать дальше →

Настраиваем связку Apache Zeppelin + Oracle

Время на прочтение6 мин
Количество просмотров14K
Давно ищу удобный инструмент для выполнения ad hoc SQL-запросов в БД Oracle, с возможностью быстрого построения различных типов графиков на полученных данных. Все, что может облегчить оперативное создание отчетов, как говорится «на лету». Совсем недавно наткнулся на вот такой инструмент как Apache Zeppelin. Короткий обзор возможностей в документации на сайте и демо-видео показал, что это штука достаточно интересная и имеет смысл более плотно исследовать ее и настроить доступ из Apache Zeppelin к СУБД Oracle.


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

Ускоряем OSB

Время на прочтение4 мин
Количество просмотров4.7K
Статья подготовлена Дмитрием Овчаренко, архитектором Департамента прикладных финансовых систем компании «Инфосистемы Джет»

Предвидя проблему


Приступая к разработке прокси-сервиса на Oracle Service Bus, следует принимать во внимание условия использования этого сервиса. Например, если разрабатываемый процесс будет участвовать во множестве популярных операций или использоваться большим числом пользователей. В случае, например, запроса информации для первой страницы после логина пользователя на сайте следует сразу придерживаться соображений оптимального кода с точки зрения производительности.

В процессе написания трансформаций и всех обращений к путям внутри сообщения не поленитесь указать [1] после каждого узла в XPath

$Get_Client_Info_Output/ns1:ListOfContact[1]/ns1:Contact[1]/ns1:rName[1]

Это позволит обрабатывать выражение как обращение к единичным элементам структуры, а не к множественным, как это подразумевается в общем случае.
Читать дальше →

Регулярные выражения Oracle. Опасный диапазон

Время на прочтение4 мин
Количество просмотров47K


Разработчик Oracle, часто использующий в коде регулярные выражения, особенно на базах с православными настройками, рано или поздно может столкнуться с явлением, которое, кроме как мистикой, никак не назовешь. Длительные поиски причин возникновения проблемы могут привести к потере веса, аппетита и спровоцировать различного рода психосоматические расстройства — все это я сейчас и попробую предотвратить. А поможет мне в этом функция regexp_replace. Она может иметь до 6 аргументов:

REGEXP_REPLACE (
  1. исходная_строка,
  2. шаблон,
  3. заменяющая_строка,
  4. позиция начала поиска совпадения с шаблоном (по умолчанию 1),
  5. номер вхождения шаблона в исходную строку (по умолчанию 0 – все вхождения),
  6. модификатор (пока что темная лошадка)
)
Возвращает измененную исходную_строку, в которой все вхождения шаблона заменены значением, переданным в параметре заменяющая_строка. Зачастую пользуются короткой версией функции, где заданы 3 первых аргумента, что бывает достаточно для решения многих задач. Я тоже так сделаю. Допустим, нам нужно в строке 'MASK: lower case' замаскировать все строчные символы звездочками. Для задания диапазона строчных символов должен подойти шаблон '[a-z]'. Проверяем

select regexp_replace('MASK: lower case', '[a-z]', '*') as result from dual

Ожидание
+------------------+
| RESULT           |
+------------------+
| MASK: ***** **** |
+------------------+

Реальность
+------------------+
| RESULT           |
+------------------+
| *A**: ***** **** |
+------------------+

Если на вашей базе это явление не воспроизвелось, значит вам пока повезло. Но чаще начинаются копания в кодировках, конвертации строк из одного набора символов в другой и со временем наступает примерно такое состояние
Читать дальше →

Oracle, типичные задачи SQL. Гарантированный выбор

Время на прочтение3 мин
Количество просмотров24K


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

Что такое гарантированный выбор в SQL? Допустим, что в условии запроса к таблице выполняется сравнение какого-либо поля с какой-нибудь переменной. В зависимости от значения этой переменной запрос может вернуть строки из таблицы, а может и не вернуть их вовсе. Если выпадает такое значение переменной, что строки из таблицы не возвращаются, то для этого случая надо специально сгенерировать заранее определенный левый результат. То есть в любом случае общий запрос должен гарантированно что-нибудь да вернуть. Сам термин взят отсюда. Однако задача усложняется тем (а может и наоборот, упрощается), что вместо одной простой ячейки со значением, нам нужно гарантировано вернуть полноценную строку.

Привожу данные центризбиркома. Первый тур голосования закончился с такими результатами
Читать дальше →

Знай своего потребителя, или Отраслевые решения Oracle

Время на прочтение5 мин
Количество просмотров3.4K
Помимо вашего товара или услуги потребитель покупает три вещи — разговор, сообщество и умное содержание. При этом не важно, что вы продаете — пилюли от кашля или карьерный экскаватор. Чтобы продать или обслужить товар или услугу, необходимы системы, которые управляют потребительским опытом и постоянно дают клиенту нужные ощущения и нужную информацию.


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

Oracle, типичные задачи SQL. Трансформация перечисленных в колонке значений в строки таблицы

Время на прочтение3 мин
Количество просмотров40K
Добро пожаловать в Голливуд. Представляю вам сегодняшних героинь

image

Сперва мы узнаем, кто был в мужьях у этих красоток. А потом с помощью незамысловатых спецэффектов я вам покажу, в каком порядке они друг с другом бракосочетались. Так что юным девам эта статья будет особенно интересна.

Создадим и заполним базовую таблицу
create table hollywood 
as 
with t (id, actress, husbands) as (
  select 1, 'Анджелина Джоли', 'Джонни Ли Миллер, Билли Боб Торнтон, Брэд Питт' from dual union all
  select 2, 'Шарлиз Терон', null from dual union all
  select 3, 'Пенелопа Крус', 'Хавьер Бардем' from dual
)  
select * from t;

alter table hollywood add primary key (id);
Читать дальше →

Oracle, типичные задачи SQL. Размножение строк таблицы в зависимости от значения числа в колонке

Время на прочтение3 мин
Количество просмотров44K
image

На носу зима, приближаются морозы, а это значит, что сегодня мы будем мариновать бананы. Для этого нам понадобятся следующие ингредиенты:
ID INGREDIENT MEASURE QUANTITY
1 Банан Штука 3
2 Петрушка Ветка 2
3 Вода Литр 3
4 Соль Ложка 1
5 Уксус Ложка 2
Читать дальше →

Compalex: сравнение схем двух баз данных

Время на прочтение3 мин
Количество просмотров37K
Предположим, у вас есть prod и test базы данных. В какой-то момент разработчик внес изменения в тестовую базу, но забыл внести эти изменения в боевую базу. Если это часто используемая таблица, то ситуация очень быстро становится очевидной, так как в логах появятся ошибки в SQL-запросах и вам начинает звонить начальник с упреками «какого @#$%».

Но иногда изменения затрагивают редко используемые таблицы, либо изменения на первый взгляд не совсем очевидны (например, кто-то изменил длину поля VARCHAR и у вас стали обрезаться строки, или кто-то добавил индекс, из-за которого запросы на тестовой базе выполняются на порядок быстрее).

Еще вариант — вы провели обновление ПО и у вас все перестало работать. Куча непонятных ошибок на пустом месте, приложение лежит, пользователи не довольны.

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


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

Пора. Обновление до Oracle Database 12

Время на прочтение8 мин
Количество просмотров22K

Почему пора?


Время летит быстро, и для пользователей Oracle Database 11.2, не говоря уже о более ранних версиях, настало время обновления. 31 января 2015 года закончился период Premier Support базы Oracle Database 11.2. Это значит, что если вы, например, запланируете обновление аппаратного сервера, то на нем придется установить новую версию операционной системы, т.к. драйверы для прежней версии уже недоступны, а новая операционная система уже не сертифицирована под версию 11.2.

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

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

Программно-аппаратные комплексы Oracle — открываем тему

Время на прочтение9 мин
Количество просмотров12K
Открываем тему — потому что в рамках одной статьи рассказать про восемь различных программно-аппаратных комплексов Oracle можно только в формате «открытия темы». Поэтому сегодня мы «пробежимся» по Exadata, Exalogic, SuperCluster, Exalytics, Database Appliance, Big Data Appliance, Private Cloud Appliance и Zero Data Loss Recovery Appliance, а в других материалах будем обсуждать каждую продуктовую линию отдельно и детально.

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

История о чертовых дублях

Время на прочтение3 мин
Количество просмотров3.2K
Данная статья подготовлена Дмитрием Овчаренко, архитектором Департамента прикладных финансовых систем компании «Инфосистемы Джет»

Да будет унификация! Такое решение было принято при проектировании интеграционной архитектуры, связывающей CRM с другими внешними системами посредством шины на Oracle Service Bus. Помимо онлайн-интеграции на основе веб-сервисов, она принимает файлы, поступающие в систему, и вызывает веб-сервисы на стороне CRM, специально разработанные для каждого типа входящих данных.

Файл содержит множество записей, и по каждой требуется выполнить отдельный вызов сервиса на стороне CRM. Обработка файла производится в цикле по записям. На каждый вызов сервиса уходит по 5 секунд – это довольно много, но для выполнения поставленных требований вполне хватало. Процесс обработки вызова веб-сервиса в CRM предварительно проверяет запись на дубль, затем выполняет требуемую бизнес-логику и создает запись в БД.

Но «внезапности» могут возникнуть в непредвиденных моментах «шиномонтажа». На промышленных объемах данных в базе CRM стали появляться дубли. Мы выяснили, что источник может почему-то отправить большой файл повторно (сразу после того, как он будет подхвачен файловым proxy-сервисом и помещен в Stage-папку). Причем отставание между вызовами веб-сервисов, создающих дубли, настолько мало, что в момент второго вызова данные в первом еще не закоммичены, и проверка на стороне CRM не успевает срабатывать.
Читать дальше →

Private Cloud Appliance — лучшая система виртуализации и частного облака для центров обработки данных

Время на прочтение5 мин
Количество просмотров6.8K
Основная ИТ-проблема предприятий сегодня — это рост операционных расходов. По данным IDC, 70 % операционных расходов на ИТ связаны с эксплуатацией ЦОДов, при этом 80 % ИТ-персонала заняты на поддержке имеющейся инфраструктуры. Другая сторона этой проблемы состоит в том, что сложность ЦОДа не позволяет гибко реагировать на изменения бизнес-требований, вследствие чего ИТ-система предприятия начала тормозить развитие бизнеса. Все это привело к тому, что бизнес начал искать способы снизить операционные расходы на ИТ, а производители — предлагать такие системы.

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

Подняться в облака — чтобы не зарывать в землю

Время на прочтение7 мин
Количество просмотров7.4K
«Война за таланты окончена — победили таланты». Так сказал в прошлом году гуру HR-аналитики Джош Берсин, и эта фраза ознаменовала рождение новой реальности на HR-рынке. В этой новой реальности поиск и наем лучших талантов до такой степени усложнились, что рекрутеры теперь вынуждены не просто искать и нанимать таланты, а дружить с ними, мотивировать их и привлекать, иными словами — обращаться с кандидатами, как с клиентами — так же, как при продаже товара или услуги, только товаром или услугой становится работодатель, его бренд, корпоративная культура.

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

Звезда TMS

Время на прочтение9 мин
Количество просмотров24K
Считается, что системы управления транспортировками (Transportation Management Systems, TMS) входят в класс систем управления цепями поставок (Supply Chain Management, SCM), которые, в свою очередь, являются частью систем управления предприятиями (Enterprise Resource Planning, ERP). Хотя вопрос о соотношении систем различных классов достаточно сложный и неоднозначный…

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

Tutorial: присваиваем название процессу, исполняемому внутри SOA SUITE

Время на прочтение4 мин
Количество просмотров2.6K
Возможно вы не знали, но Московская Биржа – это группа компаний, и одной из наших самых больших и важных составляющих является Национальный расчетный депозитарий (НРД). Без НРД у профучастников российского и международного рынка не было бы понятных и прозрачных расчетных и депозитарных услуг, так необходимых при совершении сделок. Как и положено ИТ-компании, НРД совместно с Биржей постоянно совершенствует свою внутреннюю IT-архитектуру.

Начиная с 2014 года осуществляется внедрение и перевод интеграционного взаимодействия между внутренними системами на промышленное ПО промежуточного слоя – стек продуктов Oracle Fusion Middleware, центральное место в котором занимает Oracle SOA Suite. Этот продукт является узкоспециализированным и материалов на русском языке по нему крайне мало. В блоге Биржи мы планируем регулярно рассказывать о наших находках и открытиях, связанных с внедрением SOA Suite. Не стоит ожидать здесь появления полноценного курса, скорее это будут заметки на разные проблемные темы, для которых мы не нашли чётко сформулированных рецептов и теперь хотим поделиться своими результатами с другими специалистами. Надеемся, что в каждой статье читатель сможет найти для себя что-то новое и полезное.
Подробности

Инкрементально обновляемый бэкап как стратегия резервного копирования СУБД

Время на прочтение4 мин
Количество просмотров10K
На сегодняшний день существует множество вариантов резервного копирования СУБД Oracle, которые позволяют администраторам спать спокойно по ночам и не переживать о том, что могло бы случиться, и как можно было бы этого избежать. Также в помощь – множество программного обеспечения, позволяющего упростить ежедневные рутинные задачи.
Использование Recovery Manager (RMAN), согласно официальной документации, является рекомендованным и одним из наиболее оптимальных способов для резервного копирования и восстановления базы данных Oracle. А возможность выполнять «горячие» бэкапы, оставляя базу доступной для чтений и изменений, делает эту утилиту мощным инструментом для резервирования высокодоступных систем.
Читать дальше →

Вклад авторов