12. • Параллелизация SQL с помощью %PARALLEL с 2015.2
• с 2014.2 можно уже параллелить свои процессы
– $system.WorkMgr - менеджер очереди процессов
– $system.IPQ - меж процессное взаимодействие, передача через локальные переменные в
памяти не на глобалах
%PARALLEL (2015.1)
17. • %ZEN.Auxiliary.jsonProvider
– ParseJSON
• Реализация на Caché ObjectScript;
• Генерирует экземпляры прокси объектов %ZEN.proxyObject
– ObjectToJSON, ArrayToJSON, %WriteJSONfromSQL, %WriteJSONfromObject
• Любая из структур может быть автоматически описана в JSON
JSON
19. • Перенести разбор в ядро
• Уменьшить накладные расходы по памяти
• Работает уже сейчас (2015.2)
Как сделать работу с JSON быстрее?
20. • $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" })
23. • Могут поменяться к релизу
Внутренние функции
##class(%Dynamic.Object).%New()
##class(%Dynamic.Array).%New()
##class(%Dynamic.AbstractVector).%ParseJSON()
24. • Никаких новых типов данных SQL не предлагается
• JSON документы хранятся как значения строчного типа, например,VARCHAR, CLOB,
VARBINARY, или BLOB и т.п.
Хранение JSON данных
JSON расширения в SQL
CREATE TABLE employees (
emp_id INTEGER,
department INTEGER,
emp_json VARCHAR (5000) )
25. • Создаются документы JSON из результатов SQL запросов, типа:
– JSON_OBJECT
– JSON_OBJECTAGG
– JSON_ARRAY
– JSON_ARRAYAGG
Публикация JSON документов
JSON расширения в SQL
26. • Этот запрос возвращает одну строку каждого отдела записанного в таблице DEPTS;
• Эта строка содержит одну колонку, в которой JSON Объект сериализован, и
содержит номер отдела и название
JSON_OBJECT
SELECT
JSON_OBJECT( 'deptno' : deptno, 'deptname' : deptname )
FROM depts
{ "deptno" : 314,"deptname" : "Engineering" }
27. • В качестве результата запроса будут возвращены 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"
28. • В результате запрос возвращает JSON массив с 0 и более элементов
JSON_ARRAY
SELECT JSON_ARRAY( 'deptno', deptno, 'deptname', deptname ) FROM
depts
[ "deptno", 314, "deptname", "Engineering" ]
29. • Агрегатная функция, создает JSON массив с 0 и более элементов, из строк
группированного запроса
JSON_ARRAYAGG
SELECT emp_id, JSON_ARRAYAGG (number) AS numbers
FROM phones GROUP BY emp_id
123 ["555-1234", "555-9876", "555-4455"]
30. • Встроенные SQL функции для запроса по JSON данным
– JSON_TABLE: возвращает SQL таблицу
– JSON_QUERY: возвращает строчное SQL значение, которое соответствует
JSON объекту или JSON массиву
– JSON_VALUE: возвращает скалярное SQL значение
• Доступны новые предикаты по JSON данным
– IS JSON
– JSON_EXISTS
Запросы над JSON
SQL расширения для данных типа JSON
34. • Для Eclipse есть 27 для различных VCS
– Встроенная поддержка Git/GitHub
• Для экспорта в VCS оперируем файлами операционной системы
• Нативный UDL экспорт, никакого XML
• Оформление синтаксиса полностью на стороне разработчика, а
не форсируется UDL рендерером
• По-прежнему можно будет использовать Studio хуки
Atelier – управление исходниками
35. • Почти все делается на стороне клиента
–Строится AST
–Производится рефакторинг
–Поиск
–Diff для VCS
–Работа основана на Workspace и проектах
• Настройки сервера встроены в даннные проекта
Atelier - архитектура
36. • Полностью RESTful интерфейс для работы клиента
–Исследование содержимого областей и баз
–Компиляция
–Синхронизация
–API полностью публично*
• Отладка происходит посредством взаимодействия Web Sockets
• Будет встроенный telnet клиент
Atelier – работа с сервером
38. • Бета программа начнется по готовности следующего
– Синтаксический разбор - COS
– Поддержка классов
– Поддержка программ
– Отладка
– Интеграция с Unit тестированием
• Летом?
Когда же?