Новости global summit 2015
Post on 17-Jul-2015
148 Views
Preview:
TRANSCRIPT
• Параллелизация SQL с помощью %PARALLEL с 2015.2
• с 2014.2 можно уже параллелить свои процессы
– $system.WorkMgr - менеджер очереди процессов
– $system.IPQ - меж процессное взаимодействие, передача через локальные переменные в
памяти не на глобалах
%PARALLEL (2015.1)
Множество инструментов для разных пользователей?
Key/Value
Document-oriented
Graph-oriented
Object-oriented
Column-oriented
Hadoop
Relational
• Были продемонстрированы
функционирующие уже способы
работы с NoSQL/DocumentDB
– Java
– Node.js
• SQL расширения для JSON данных
NoSQL Demo
• %ZEN.Auxiliary.jsonProvider
– ParseJSON
• Реализация на Caché ObjectScript;
• Генерирует экземпляры прокси объектов %ZEN.proxyObject
– ObjectToJSON, ArrayToJSON, %WriteJSONfromSQL, %WriteJSONfromObject
• Любая из структур может быть автоматически описана в 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" })
• Могут поменяться к релизу
Внутренние функции
##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
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 – работа с сервером
• Бета программа начнется по готовности следующего
– Синтаксический разбор - COS
– Поддержка классов
– Поддержка программ
– Отладка
– Интеграция с Unit тестированием
• Летом?
Когда же?
top related