Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Новости Global Summit 2015
Тимур Сафин
Новости Global summit 2015
Новости Global summit 2015
Новости Global summit 2015
Воскресенье, 8 марта 2015
Понедельник, 9 марта 2015
Вторник, 10 марта 2015
Новости Global summit 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
SELECT
JSON_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 numbers
FROM 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
Ecosystem
Source
Control
Debugging
Refactoring
Unit
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 тестированием
• Летом?
Когда же?
Вопросы?

More Related Content

Новости Global summit 2015

  • 1. Новости Global Summit 2015 Тимур Сафин
  • 11. SQL
  • 12. • Параллелизация SQL с помощью %PARALLEL с 2015.2 • с 2014.2 можно уже параллелить свои процессы – $system.WorkMgr - менеджер очереди процессов – $system.IPQ - меж процессное взаимодействие, передача через локальные переменные в памяти не на глобалах %PARALLEL (2015.1)
  • 13. NoSQL
  • 14. Множество инструментов для разных пользователей? Key/Value Document-oriented Graph-oriented Object-oriented Column-oriented Hadoop Relational
  • 15. • Были продемонстрированы функционирующие уже способы работы с NoSQL/DocumentDB – Java – Node.js • SQL расширения для JSON данных NoSQL Demo
  • 16. JSON: лучше и быстрее
  • 17. • %ZEN.Auxiliary.jsonProvider – ParseJSON • Реализация на Caché ObjectScript; • Генерирует экземпляры прокси объектов %ZEN.proxyObject – ObjectToJSON, ArrayToJSON, %WriteJSONfromSQL, %WriteJSONfromObject • Любая из структур может быть автоматически описана в JSON JSON
  • 18. Сделать БЫСТРЕЕ Сделать лучше Сделать проще Текущие задачи в 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 тестированием • Летом? Когда же?