PASS Community
November 2015
SQL Server Heterogêneo
SQL Server + BigData
PASS Chapter Leader
Rodrigo Ramos Dornel
“Dornel”
MTAC Lead da Região SUL
Professor Universitário
Mais de 10 anos como consultor em SQL
Server
MCT e MCSA
RDornel Data Platform Experts
Upcoming SQLSaturdays
South America International
• Novembro, 21em 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 - MCITPSC
http://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.
1
0
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.
1
1
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ó)
1
2
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.
1
3
Introdução
1
4
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
1
5
Introdução
1
6
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 .
1
7
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
1
8
Introdução
• DocumentDB
1
9
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).
2
0
XML
• Demo
• XML Auto
• XQuery
• XQuery Update
2
1
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.
2
2
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
2
3
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_PersonID
ON jsonFullTextCatalog;
GO
2
4
JSON
• Demo
• JSON AUTO e PATH
2
5
PolyBase
O que é PolyBase?
• A tecnologia PolyBase permite consultar e unir dados
de várias fontes, tudo usando os comandos Transact-
SQL.
2
6
PolyBase
O que é PolyBase?
2
7
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.
2
8
PolyBase
O que é PolyBase?
• Fonte de dados Externa, Hortomworks.
• Definição dos dados
• Localização dele no File System
2
9
PolyBase
• Demo
• Criar o Source, File, Table
• ODBC, OpenQuery
• Azure Blob
3
0
SSIS
• Pacote de Integração SSIS + HDInsight + Azure Blob
• Conjunto de ferramentas para conexão e tarefas
dentro do SSIS.
• Demo
• Azure Blob Upload.
3
1
SSIS
3
2
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
• rodrigodornel@gmail.com

SQL Server Heterogêneo: SQL Server + BigData

  • 1.
    PASS Community November 2015 SQLServer Heterogêneo SQL Server + BigData
  • 2.
    PASS Chapter Leader RodrigoRamos Dornel “Dornel” MTAC Lead da Região SUL Professor Universitário Mais de 10 anos como consultor em SQL Server MCT e MCSA RDornel Data Platform Experts
  • 3.
    Upcoming SQLSaturdays South AmericaInternational • Novembro, 21em 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!
  • 4.
    Local Chapter -MCITPSC http://www.mcitpsc.com.br - @mcitpsc
  • 5.
  • 6.
    6 Introdução Porque banco dedados Heterogêneo? • XML • SQL + NoSQL • Hadoop • MapReduce • HDFS • Hive • DocumentDB
  • 7.
    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.
    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.
    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.
    1 0 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.
    1 1 Introdução • Hadoop • Plataformafeita 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.
    1 2 Introdução • HDFS • Sistemasde 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.
  • 14.
    1 4 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.
  • 16.
    1 6 Introdução • Hive • Basicamenteuma 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.
    1 7 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.
  • 19.
    1 9 XML • SQL Servere 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.
    2 0 XML • Demo • XMLAuto • XQuery • XQuery Update
  • 21.
    2 1 JSON • DocumentDB • ODocumentDB 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.
    2 2 JSON • JSON eo 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.
    2 3 JSON • JSON eo 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_PersonID ON jsonFullTextCatalog; GO
  • 24.
  • 25.
    2 5 PolyBase O que éPolyBase? • A tecnologia PolyBase permite consultar e unir dados de várias fontes, tudo usando os comandos Transact- SQL.
  • 26.
  • 27.
    2 7 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.
    2 8 PolyBase O que éPolyBase? • Fonte de dados Externa, Hortomworks. • Definição dos dados • Localização dele no File System
  • 29.
    2 9 PolyBase • Demo • Criaro Source, File, Table • ODBC, OpenQuery • Azure Blob
  • 30.
    3 0 SSIS • Pacote deIntegração SSIS + HDInsight + Azure Blob • Conjunto de ferramentas para conexão e tarefas dentro do SSIS.
  • 31.
    • Demo • AzureBlob Upload. 3 1 SSIS
  • 32.
    3 2 Quem vai cuidardisso tudo? Você mesmo belesão!!!
  • 33.
    Stay Involved! • Signup 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 • rodrigodornel@gmail.com