Top Banner
Ключевые изменения в 2015 Что нового и куда движутся технологии InterSystems Шваров Евгений
34

владивосток форум новости технологий 2015

Aug 16, 2015

Download

Software

Elena Ometova
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: владивосток форум новости технологий 2015

Ключевые изменения в 2015 Что нового и куда движутся

технологии InterSystems Шваров Евгений

Page 2: владивосток форум новости технологий 2015

Новое в Caché Что нового в Caché 2015

Page 3: владивосток форум новости технологий 2015

• Если ранее 1-2 релиза в год

• В 2015-м – релизы каждый квартал!

• Сейчас есть 2015.1 релиз и 2015.2 FT.

Релизы Caché каждый квартал

Page 4: владивосток форум новости технологий 2015

• Рост производительности до 2,5 раз по сравнению с Caché 2014

• Наибольший эффект наблюдается для многопроцессорных систем и для больших ECP конфигураций

Ускорение работы в Caché 2015

Page 5: владивосток форум новости технологий 2015

• Глобалы (NoSQL доступ)

• SQL – таблицы

• Объекты

• XML Projection

• Caché 2015 – DocDB!

Новое представление и способ работы с данными

Page 6: владивосток форум новости технологий 2015

DocDB - подробности • Теперь ваши данные

можно представить и как документы

• CRUD и запросы к данным как к документам

• Манипуляция данными в JSON

• DocDB ~ MongoDB

##class(%Dynamic.Object).%New()

##class(%Dynamic.Array).%New()

##class(%Dynamic.AbstractVector).%ParseJSON()

Page 7: владивосток форум новости технологий 2015

DocDB - подробности

• Создан специальный пакет классов %Dynamic

• Релиз в 2015.3?

##class(%Dynamic.Object).%New()

##class(%Dynamic.Array).%New()

##class(%Dynamic.AbstractVector).%ParseJSON()

Page 8: владивосток форум новости технологий 2015

Расширенная поддержка JSON

• Изменения в COS

• Изменения в SQL

• Изменения в ядре

Page 9: владивосток форум новости технологий 2015

Расширенная поддержка JSON. COS

Set array=[ 1,2,3,4 ] Set array=[ 1,x,y*2,"string",x_","_y ] Set object={ "forename":"Joe", surname:"Blogs" } Set object={ sum: var1+var2, type: $select(x=1:"one",x=2:"two") } Set array=[ (a]b) , (a]]b) ] Set object={ var : (a]b) } Set array=[ 1, { name : forename_" "_surname } , val**2, { var : [ 1, x*y ] } ] Set object={ name : forename_" "_surname, sub : [ { var : "val" }, 5, (a]b) ] } Do ..Method([1,2,3], { var:"val" })

Создать инстанс %Zen.ProxyObject можно с помощью set

Page 10: владивосток форум новости технологий 2015

JSON расширения в Caché SQL. Хранение данных

• Никаких новых типов данных SQL не предлагается

• JSON документы хранятся как значения строчного типа, например,VARCHAR, CLOB, VARBINARY, или BLOB и т.п.

CREATE TABLE employees ( emp_id INTEGER, department INTEGER, emp_json VARCHAR (5000) )

Page 11: владивосток форум новости технологий 2015

JSON расширения в Caché SQL. Запросы

• Добавлены новые ключевые слова:

– JSON_OBJECT

– JSON_OBJECTAGG

– JSON_ARRAY

– JSON_ARRAYAGG

Page 12: владивосток форум новости технологий 2015

• Этот запрос возвращает одну строку каждого отдела записанного в таблице DEPTS;

• Эта строка содержит одну колонку, в которой JSON Объект сериализован, и

содержит номер отдела и название

JSON_OBJECT

SELECT JSON_OBJECT( 'deptno' : deptno, 'deptname' : deptname ) FROM depts { "deptno" : 314,"deptname" : "Engineering" }

Page 13: владивосток форум новости технологий 2015

Расширенная поддержка JSON. Изменения в ядре

Парсинг JSON на уровне ядра дает ускорение работы с JSON до 200 раз

Page 14: владивосток форум новости технологий 2015

Параллельные вычисления в SQL Новый хинт %PARALLEL

Page 15: владивосток форум новости технологий 2015

• Параллельные вычисления в Caché уже есть.

• Параллельные вычисления в Caché SQL - %PARALLEL • Как все работает.

• Когда стоит применять.

Параллелизация SQL запросов Caché. %Parallel

Page 16: владивосток форум новости технологий 2015

• Параллельная компиляция классов – Появилась в Caché 2011.1, автоматическая с Caché 2013.1

• Параллельное построение индексов – [Caché 2013.1]

– %Library.IndexBuilder.%ConstructIndicesParallel()

• DeepSee

– Построение кубов

– MDX запросы

» Вычисление каждой ячейки – отдельная задача

» Рабочие процессы могу использовать все доступные ядра

Параллелизация в Caché. Что уже есть

Page 17: владивосток форум новости технологий 2015

Использование в запросах

• Select … UNION %PARALLEL select …

– Каждая ветка UNION вычисляется в отдельном процессе Caché

• Select … FROM %PARALLEL <tables>

– N частей

– Оптимизатор SQL решает как разделить запрос на части

– Вычисления делятся на части по ключам (индекса или таблицы)

– Where T1.ID>? AND T1.ID<=?

– Внутренние функции определяют границы частей

– Проверяются глобалы индексов и данных

Синтаксис

Page 18: владивосток форум новости технологий 2015

Требования к параллелизации

Запрос, разделяемый на несколько частей

t

Chunk1 Chunk2 Chunk3 ChunkN O

verh

ead

Overh

ead

t1 t2

Размеры частей

Равные части, не слишком

большие, не слишком

маленькие

Зависимость

Части должны быть

независимы друг от друга

SQL query

Page 19: владивосток форум новости технологий 2015

Использование в запросах

1

• Использование %PARALLEL говорит

оптимизатору, что нужно разделить запрос

Работа оптимизатора

• Определяет возможность

параллелизации

• Разделяет первую карту в плане

на N частей

• Генерирует условия с

диапазона для каждой

части

• Работает по исходному

плану с учетом

разделения на части

2 • Генерируется стандартный план запроса

3 • %PARALLEL проверяет план

4 • Сгенерированный код содержит разделение и

постановку в очередь

Page 20: владивосток форум новости технологий 2015

Работа запросов: пример

select Avg(Age) from %PARALLEL Sample.Person

…where id<=X1…

…where id>X1 and

id<=X2…

…where id>X2 and

id<=X3

…where id>X3

Куски

вычислений

SELECT…

FROM %PARALLEL <tables>…

SELECT count(T1.Age),sum(T1.Age) FROM %NOPARALLEL Sample.Person T1

%PARTITION BY T1.ID>? AND T1.ID<=?

Получение итогового результата

Очередь

задач

Page 21: владивосток форум новости технологий 2015

Когда использовать %PARALLEL

– НЕ замена для индексов

• Индексы позволяют делать меньше вычислений для одного и того же запроса

– Потребляет больше ресурсов

• Разделение, объединение результатов

– НЕ для всех запросов подойдет

• Не все запросы станут быстрее

Волшебная палочка?

Page 22: владивосток форум новости технологий 2015

Atelier – новая студия Кросплатформенная студия для Caché

Page 23: владивосток форум новости технологий 2015

Cross

Platform

Open

Source

Modern

Experience

Ecosystem Source

Control Debugging

Refactoring Unit

Testing

Code

Analysis

Как люди выбирают современное IDE?

Page 24: владивосток форум новости технологий 2015

• Atelier – это плагин для свободной IDE Eclipse

• Кросплатформенная среда (Windows, Linux, Mac…)

• Встроенная поддержка Git/GitHub

• Для экспорта в VCS оперируем файлами операционной системы

• Нативный UDL экспорт, никакого XML

Atelier. Что это и фичи

Page 25: владивосток форум новости технологий 2015

• C Caché работа идет через REST API

• Почти все делается на стороне клиента

–Строится AST

–Производится рефакторинг

–Поиск

–Отладка

Atelier - архитектура

Page 26: владивосток форум новости технологий 2015

• Полностью RESTful интерфейс для работы клиента

–Исследование содержимого областей и баз

–Компиляция

–Синхронизация

–API полностью публично*

• Отладка происходит посредством взаимодействия Web Sockets

• Будет встроенный telnet клиент

Atelier – работа с сервером

Page 27: владивосток форум новости технологий 2015

Atelier

Page 28: владивосток форум новости технологий 2015

• Бета программа начнется по готовности

– Синтаксический разбор - COS

– Поддержка классов

– Поддержка программ

– Отладка +

– Интеграция с Unit тестированием

• Летом?

Когда релиз?

Page 29: владивосток форум новости технологий 2015

DeepSee – MDX2JSON Доступ к данным через REST

Page 30: владивосток форум новости технологий 2015

• Каждый виджет DeepSee получает результат MDX запроса и

визуализирует результат.

• Сделано REST-API, которое выдает по MDX результат в виде JSON

• Кроме MDX есть обвязка метаданных дашбордов: виджеты,

фильтры, доступ, MDX-запросы.

• Модуль включен в продукт, результат ждем в 2015.3

MDX2JSON

Page 31: владивосток форум новости технологий 2015

MDX2JSON REST API

DeepSee Mobile

Смартфон

Caché сервер

Дашборды

Виджеты

Данные MDX

Как это работает?

Page 32: владивосток форум новости технологий 2015

Типичные бизнес задачи DeepSee

• Пивот-таблица

• Дриллдаун данных

• Гистограммы

• Таймчарты

Page 33: владивосток форум новости технологий 2015

Что дает DeepSee Mobile?

Визуализация дашбордов DeepSee на iPhone/iPad, Android, Winphone

Ни одной строчки программирования

Работает начиная с версии 2013.1

Page 34: владивосток форум новости технологий 2015

Все вместе

• Релизы каждый квартал

• Ускорение Caché в 2-2.5 раза

• DocDB

• Нативная поддержка JSON –ядро, CacheSQL, COS

• Параллельный SQL

• Новая студия Atelier

• DeepSee MDX2JSON REST API

ВОПРОСЫ?