sql server heterogêneo: sql server + bigdata
TRANSCRIPT
November 2015
SQL Server HeterogêneoSQL Server + BigData
PASS Chapter LeaderRodrigo Ramos Dornel “Dornel”
MTAC Lead da Região SULProfessor UniversitárioMais de 10 anos como consultor em SQL ServerMCT e MCSARDornel Data Platform Experts
Upcoming SQLSaturdaysSouth America International
• Novembro, 21 em Brasília• http://www.sqlsaturday.com/469/eventhome.aspx• Abril, 09 Joinville (2016)• http://www.sqlsaturday.com/488/eventhome.aspx
Visit www.sqlsaturday.com to register for a event near you!
Local Chapter - MCITPSChttp://www.mcitpsc.com.br - @mcitpsc
Agenda
Introdução XML JSON
PolyBase SISS
6
Introdução
Porque banco de dados Heterogêneo?
• XML• SQL + NoSQL• Hadoop• MapReduce• HDFS• Hive• DocumentDB
7
Introdução
XML
• O que é XML
• Linguagem de marcação
• Capaz de descrever diversos tipos de dados. Seu propósito principal é a facilidade de compartilhamento de informações através da internet.
8
Introdução
Onde tudo começou
• Alterou alguns paradigmas de banco de dados
• Primeira experiência com dados não estruturados
• Introdução do tipo de dados XML
9
Introdução
• SQL + NoSQL
• SQL, fortemente ligado ao mundo relacional, consultas bem definidas, esquemas rígidos e ACID.
• NoSQL, termo genérico para uma classe definida de banco de dados não-relacionais. Não apresenta estrutura rígida, alguns chamam de livre de esquema, pouco ou nenhum controle ACID.
10
Introdução
• SQL + NoSQL
• NoSQL, extremamente orientado a solução, ou seja, flexível, escalável e customizado.
• Trabalhar em arquitetura em nuvem e escalabilidade horizontal.
11
Introdução
• Hadoop
• Plataforma feita em Java para processamento distribuído de grandes massas de dados.
• Basicamente composto pelo HDFS, Yarn e MapReduce.
• Projeto é mantido pela fundação Apache.
• Para nós o mais familiar ou conhecido é o HDInsight feito pela Hortomworks para a Microsoft.
• Azure ou Local (só um nó)
12
Introdução
• HDFS
• Sistemas de arquivos feito para rodar em hardware básico.
• Feito para trabalhar com grandes quantidades de dados.
• Tolerante a falha.
• Não leva em consideração aspectos tradicionais de acesso a dados e sim um estilo de acesso como um streaming de dados.
13
Introdução
14
Introdução
• MapReduce
• MapReduce é um modelo de programação desenhado para processar grandes volumes de dados em paralelo, dividindo o trabalho em um conjunto de tarefas independentes
15
Introdução
16
Introdução
• Hive
• Basicamente uma infraestrutura de datawarehouse para rodar no topo da arquitetura do Hadoop para oferecer sumarização dos dados, consultas e análise.
• Ele oferece uma linguagem SQL-like chamada de HiveQL com leitura e esquemas que permitem que consultemos os dados MapReduce como se consultássemos banco tradicionais.
• Por causa dessa bendita possibilidade que estamos aqui Hoje .
17
Introdução
• DocumentDB
• É o banco de dados da Microsoft para JSON e JavaScript (Java Script Object Notation).
• No site do DocumentDB ele comenta que é possível fazer consultas parecidas com SQL ou usar UDF, funções para essas conversões.
• Seria o concorrente da Microsoft para o mongoDB
18
Introdução
• DocumentDB
19
XML
• SQL Server e XML
• Introduzido na versão 2005.
• Possibilita transformar linhas do banco de dados em fragmentos de XML.
• Permite carregar e armazenar dados XML dentro SQL Server.
• Usa a linguagem XQuery para manipular dados dentro do XML, baseado em expressões XPath (árvore do XML, navegação).
20
XML
• Demo
• XML Auto• XQuery• XQuery Update
21
JSON
• DocumentDB
• O DocumentDB do Azure é um serviço de banco de dados de documento NoSQL projetado desde o início para suportar, de forma nativa, JSON e JavaScript diretamente dentro do mecanismo de banco de dados.
22
JSON
• JSON e o SQL Server 2016
• JSON Auto, cria uma hierarquia automaticamente
• JSON Path, você especifica as hierarquias• ISJSON(), valida se a coluna está no padrão
JSON• JSON_QUERY() “SUB CONSULTA”• JSON_VALUE(), retorna o valor do nó• JSON_MODIFY()???• OPENJSON(), carrega um campo “texto”
convertendo ele para JSON. OPENJSON é uma função (TVF), imagina um CAST ou CONVERT.
• INCLUDE_NULL_VALUES
23
JSON
• JSON e o SQL Server 2016
• Indexação
• ALTER TABLE Sales.SalesOrder_json• ADD vCustomerName AS
JSON_VALUE(Info, '$.Customer.Name')
• CREATE INDEX idx_SalesOrder_json_CustomerName
• ON Sales.SalesOrder_json(vCustomerName)
• Ou crie um índice Full Text!!!CREATE FULLTEXT INDEX ON Person.Person_json(EmailAddresses)
KEY INDEX PK_Person_json_PersonIDON jsonFullTextCatalog;
GO
24
JSON
• Demo• JSON AUTO e PATH
25
PolyBase
O que é PolyBase?
• A tecnologia PolyBase permite consultar e unir dados de várias fontes, tudo usando os comandos Transact-SQL.
26
PolyBase
O que é PolyBase?
27
PolyBase
O que é PolyBase?
• Fonte de dados Externa, Hadoop, Azure Blob.
• Definição de como os dados estão organizados, ou seja, separadores de colunas.
• Um esquema que represente esses dados, colunas, tipos de dados e localização desse arquivo dentro do seu sistema de arquivos.
• Necessário ter o Java JDK antes de instalar e/ou pode ser interessante instalar um drive ODBC para Hive.
28
PolyBase
O que é PolyBase?
• Fonte de dados Externa, Hortomworks.• Definição dos dados• Localização dele no File System
29
PolyBase
• Demo• Criar o Source, File, Table• ODBC, OpenQuery• Azure Blob
30
SSIS
• Pacote de Integração SSIS + HDInsight + Azure Blob
• Conjunto de ferramentas para conexão e tarefas dentro do SSIS.
31
• Demo
• Azure Blob Upload.
SSIS
32
Quem vai cuidar disso tudo?
Você mesmo belesão!!!
Stay Involved!• Sign up for a free membership today at sqlpass.org
• Linked In: http://www.sqlpass.org/linkedin• Facebook: http://www.sqlpass.org/facebook• Twitter: @SQLPASS• PASS: http://www.sqlpass.org
• @rdornel• [email protected]