SQL Server Heterogêneo SQL Server + Big Data MVP Rodrigo Dornel @rdornel | Rdornel Data Platform eXperts [email protected] PATROCINADORES Apresentação. Rodrigo Dornel Data Platform MVP, MCSA e MCT. Empresário e Professor Universitário. rdornel.wordpress.com @rdornel facebook.com/rodrigodornel [email protected] rdornel.com SQL Server Heterogêneo. XML e JSON NoSQL Hadoop Hdfs Mapreduce Hive PolyBase XML e JSON Alterou alguns paradigmas de banco de dados Primeira experiência com dados não estruturados Introdução do tipo de dados XML XML e JSON 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). XML e JSON Propriedades ACID? CHECK, Constraints? Schema validation XSD XQuery XML e JSON Capaz de descrever diversos tipos de dados. Seu propósito principal é a facilidade de compartilhamento de informações através da internet, serviços e afins. XML e JSON Propriedades ACID? CHECK, Constraints? Indexação Indexing JSON path using B-tree index Indexing JSON array element using full-text search index XML e JSON Capaz de descrever diversos tipos de dados. Seu propósito principal é a facilidade de compartilhamento de informações através da internet, serviços e afins. XML e JSON XML e JSON 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(), altera valores OPENJSON(), carrega um campo “texto” convertendo ele para JSON. OPENJSON é uma função (TVF), imagina um CAST ou CONVERT. INCLUDE_NULL_VALUES XML e JSON Demos SQL Server 2016 SQL vs 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. 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ó) 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. Hdfs 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 MapReduce Google 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. Hive Usa tabelas similares ao modelo relacional. Particionadas, overwriting e appending data. Cada tabela é um diretório no HDFS, pode ser dividida em partições ou buckets. Hive Hive Suporta a maioria dos tipos de dados primitivos. BIGINT, BINARY, BOOLEAN, CHAR, DECIMAL, DOUBLE, FLOAT, INT, SMALLINT, STRING, TIMESTAMP, and TINYINT. Adicional de dados complexos como structs, maps and arrays PolyBase A tecnologia PolyBase permite consultar e unir dados de várias fontes, tudo usando os comandos Transact-SQL. PolyBase 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. PolyBase Push computation to Hadoop. Scale compute resources. Catalog Views SELECT * FROM sys.external_data_sources; SELECT * FROM sys.external_file_formats; SELECT * FROM sys.external_tables; PolyBase Azure Feature Pak PolyBase Azure Feature Pak PolyBase Azure Feature Pak PolyBase Azure Feature Pak PolyBase Demo Hortonworks Hdfs Hive Polybase External Table Hive ODBC Azure Feature Pak