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

2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

Шваров Евгений

Page 2: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

Page 3: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

• Еслиранее1-2релизавгод• В2015-м– релизыкаждыйквартал!

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

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

Page 4: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

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

Page 5: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

• Глобалы (NoSQL доступ)• SQL– таблицы• Объекты• XMLProjection• Caché2015– DocDB!

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

Page 6: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

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

• DocDB ~MongoDB##class(%Dynamic.Object).%New()

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

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

Page 7: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

• Релизв2015.3?

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

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

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

Page 8: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

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

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

Page 9: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

Расширеннаяподдержка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: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

Page 11: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

– JSON_OBJECT

– JSON_OBJECTAGG

– JSON_ARRAY

– JSON_ARRAYAGG

Page 12: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

JSON_OBJECT

SELECTJSON_OBJECT( 'deptno' : deptno, 'deptname' : deptname )FROM depts

{ "deptno" : 314,"deptname" : "Engineering" }

Page 13: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

РасширеннаяподдержкаJSON.ИзменениявядреПарсинг JSONнауровнеядрадаетускорениеработысJSONдо200раз

Page 14: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

Page 15: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

• Параллельные вычисления в Caché SQL - %PARALLEL

• Как все работает.

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

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

Page 16: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

• Параллельноепостроениеиндексов– [Caché2013.1]– %Library.IndexBuilder.%ConstructIndicesParallel()

• DeepSee– Построениекубов– MDXзапросы» Вычислениекаждойячейки– отдельнаязадача» Рабочиепроцессымогуиспользоватьвседоступныеядра

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

Page 17: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

• Select … UNION %PARALLEL select …

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

• Select … FROM %PARALLEL <tables>– Nчастей– ОптимизаторSQLрешаеткакразделитьзапросначасти– Вычисленияделятсяначастипоключам(индексаилитаблицы)

– Where T1.ID>? AND T1.ID<=?– Внутренниефункцииопределяютграницычастей

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

Синтаксис

Page 18: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

t

Chunk1 Chunk2 Chunk3 ChunkNOverhead

Overhead

t1t2

РазмерычастейРавные части,неслишкомбольшие,неслишкоммаленькие

ЗависимостьЧастидолжныбытьнезависимыдруготдруга

SQL query

Page 19: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

1•Использование %PARALLELговоритоптимизатору,чтонужноразделитьзапрос

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

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

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

наNчастей

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

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

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

планусучетомразделения

начасти

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

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

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

Page 20: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

selectAvg(Age)from%PARALLELSample.Person

…where id<=X1…

…where id>X1andid<=X2…

…where id>X2andid<=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: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

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

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

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

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

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

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

Page 22: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

Page 23: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

CrossPlatform

OpenSource

ModernExperience

Ecosystem SourceControl Debugging

Refactoring UnitTesting

CodeAnalysis

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

Page 24: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

• Atelier– этоплагиндлясвободнойIDEEclipse• Кросплатформенная среда(Windows,Linux,Mac…)• ВстроеннаяподдержкаGit/GitHub• ДляэкспортавVCSоперируемфайламиоперационнойсистемы• Нативный UDL экспорт,никакогоXML

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

Page 25: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

• CCachéработаидетчерезRESTAPI• Почтивседелаетсянасторонеклиента–СтроитсяAST–Производитсярефакторинг–Поиск–Отладка

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

Page 26: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

• ПолностьюRESTful интерфейсдляработыклиента–Исследованиесодержимогообластейибаз–Компиляция–Синхронизация–APIполностьюпублично*• ОтладкапроисходитпосредствомвзаимодействияWeb Sockets• Будетвстроенныйtelnet клиент

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

Page 27: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

Atelier

Page 28: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

• Бетапрограмманачнетсяпоготовности– Синтаксическийразбор- COS– Поддержкаклассов– Поддержкапрограмм– Отладка +– ИнтеграциясUnit тестированием

• Летом?

Когда релиз?

Page 29: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

Page 30: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

• Каждыйвиджет DeepSee получаетрезультатMDXзапросаивизуализируетрезультат.• СделаноREST-API,котороевыдает поMDXрезультатввидеJSON• КромеMDXестьобвязкаметаданныхдашбордов:виджеты,фильтры,доступ,MDX-запросы.• Модульвключенвпродукт,результатждемв2015.3

MDX2JSON

Page 31: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

MDX2JSONRESTAPI

DeepSeeMobile

Смартфон

Cachéсервер

Дашборды

Виджеты

ДанныеMDX

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

Page 32: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

Типичные бизнес задачи DeepSee• Пивот-таблица• Дриллдаунданных• Гистограммы• Таймчарты

Page 33: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

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

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

Page 34: 2 Shvarov InterSystems 2015 Что нового? Владивосток · •Параллельная компиляция классов – Появилась в Caché 2011.1,

Все вместе• Релизыкаждыйквартал• УскорениеCachéв2-2.5раза• DocDB• Нативная поддержкаJSON –ядро,CacheSQL,COS• ПараллельныйSQL• НоваястудияAtelier• DeepSeeMDX2JSONRESTAPI

ВОПРОСЫ?