Новости global summit 2015

39
Новости Global Summit 2015 Тимур Сафин

Upload: timur-safin

Post on 17-Jul-2015

147 views

Category:

Software


1 download

TRANSCRIPT

Новости Global Summit 2015Тимур Сафин

Воскресенье, 8 марта 2015

Понедельник, 9 марта 2015

Вторник, 10 марта 2015

Среда, 11 марта 2015

Четверг, 12 марта 2015

SQL

• Параллелизация SQL с помощью %PARALLEL с 2015.2

• с 2014.2 можно уже параллелить свои процессы

– $system.WorkMgr - менеджер очереди процессов

– $system.IPQ - меж процессное взаимодействие, передача через локальные переменные в

памяти не на глобалах

%PARALLEL (2015.1)

NoSQL

Множество инструментов для разных пользователей?

Key/Value

Document-oriented

Graph-oriented

Object-oriented

Column-oriented

Hadoop

Relational

• Были продемонстрированы

функционирующие уже способы

работы с NoSQL/DocumentDB

– Java

– Node.js

• SQL расширения для JSON данных

NoSQL Demo

JSON: лучше и быстрее

• %ZEN.Auxiliary.jsonProvider

– ParseJSON

• Реализация на Caché ObjectScript;

• Генерирует экземпляры прокси объектов %ZEN.proxyObject

– ObjectToJSON, ArrayToJSON, %WriteJSONfromSQL, %WriteJSONfromObject

• Любая из структур может быть автоматически описана в JSON

JSON

Сделать БЫСТРЕЕ

Сделать лучше

Сделать проще

Текущие задачи в JSON

• Перенести разбор в ядро

• Уменьшить накладные расходы по памяти

• Работает уже сейчас (2015.2)

Как сделать работу с JSON быстрее?

• $MethodName

• Новый синтаксис для инициализации JSON литералов

• Поддерживаются встроенные, неконстантные выражения

Как сделать работу с JSON лучше?

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" })

Быстрее?

DocumentDB

• Могут поменяться к релизу

Внутренние функции

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

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

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

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

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

VARBINARY, или BLOB и т.п.

Хранение JSON данных

JSON расширения в SQL

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

• Создаются документы JSON из результатов SQL запросов, типа:

– JSON_OBJECT

– JSON_OBJECTAGG

– JSON_ARRAY

– JSON_ARRAYAGG

Публикация JSON документов

JSON расширения в SQL

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

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

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

JSON_OBJECT

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

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

• В качестве результата запроса будут возвращены 4 строки, по две колонки в

каждой

JSON_OBJECTAGG

SELECT job_seq,JSON_OBJECTAGG( job_attrib, job_attval RETURNING VARCHAR(80) ) AS attributes

FROM jobs

101 { "Leader" : "155566", "Duration" : "00:30:00", "Description" : " Design the new tables for the web site " }234 { "Duration" : "01:00:00", "Description" : "Load the tables with existing data" }492 { "Leader" : "129596" }17 { "Description" : " Design the look-and-feel of the web site"

• В результате запрос возвращает JSON массив с 0 и более элементов

JSON_ARRAY

SELECT JSON_ARRAY( 'deptno', deptno, 'deptname', deptname ) FROM depts

[ "deptno", 314, "deptname", "Engineering" ]

• Агрегатная функция, создает JSON массив с 0 и более элементов, из строк

группированного запроса

JSON_ARRAYAGG

SELECT emp_id, JSON_ARRAYAGG (number) AS numbersFROM phones GROUP BY emp_id

123 ["555-1234", "555-9876", "555-4455"]

• Встроенные SQL функции для запроса по JSON данным

– JSON_TABLE: возвращает SQL таблицу

– JSON_QUERY: возвращает строчное SQL значение, которое соответствует

JSON объекту или JSON массиву

– JSON_VALUE: возвращает скалярное SQL значение

• Доступны новые предикаты по JSON данным

– IS JSON

– JSON_EXISTS

Запросы над JSON

SQL расширения для данных типа JSON

BigDATA

Новая Студия – Atelier

Cross

Platform

Open

Source

Modern

Experience

EcosystemSource

ControlDebugging

RefactoringUnit

Testing

Code

Analysis

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

• Для Eclipse есть 27 для различных VCS

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

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

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

• Оформление синтаксиса полностью на стороне разработчика, а

не форсируется UDL рендерером

• По-прежнему можно будет использовать Studio хуки

Atelier – управление исходниками

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

–Строится AST

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

–Поиск

–Diff для VCS

–Работа основана на Workspace и проектах

• Настройки сервера встроены в даннные проекта

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

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

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

–Компиляция

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

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

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

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

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

Atelier

• Бета программа начнется по готовности следующего

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

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

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

– Отладка

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

• Летом?

Когда же?

Вопросы?