SlideShare uma empresa Scribd logo
1 de 34
HiveQL x TSQL
Uma introdução ao
Hive no HDInsight
Bruno Feldman da Costa
bfcosta@gmail.com
@feldmanB | facebook.com/bfcosta
Patrocinadores
2 |
 Bruno Feldman da Costa
 Tech Leader DB/BI at White Cube
 MCT | MCSE Data Platform | OCP MySQL
 Twitter: @feldmanB
 E-mail: bfcosta@gmail.com
 Facebook: https://facebook.com/bfcosta
 Blog: http://brunofeldman.wordpress.com
About Me!
3 |
 Intro: Hadoop, HDInsight, Map Reduce, etc...
 Hive: Conceitos
 Diferenças entre HiveQL e TSQL
 HiveQL:
 Comandos básicos
 Índices, Particionamento, Skews, Views
Agenda
4 |
Hadoop
5 |
 Plataforma que
fornece:
 Um sistema de arquivos
distribuído (HDFS) que
armazena os dados
entre vários servidores.
 Um meio para
armazenar/consultar
(MapReduce/ YARN)
esses dados distribuídos.
HDFS
Name Node Data Nodes
Hadoop Cluster
 Blocos de dados redundantes, distribuídos
entre os nós do cluster.
 Falhas nos nós são esperadas!
HDFS – Hadoop Distributed File System
6 |
Hadoop Ecosystem
 Distribuições Hadoop
 Cloudera CDH
 Hortonworks Data Platform (HDP)
 MapR
 Microsoft Azure HDInsight
Microsoft Azure HDInsight
 Implementação do HDP no ambiente do
Azure
 VM’s com Windows Server (ou Linux) com HDP
 WebHDFS (Azure Blob Storage)
 Suporte a Powershell e SSIS
 Escalabilidade
 Rápida implementação
DEMO
 Criando um cluster HDInsight
MapReduce
 Dado dividido entre os
data nodes
 Cada nó faz o “MAP”
gerando o par
“KEY/Value”
 O REDUCE faz a
agregação.
MapReduce
M
A
P
REDUCE
 Pode ser feito com Java, C#, Python, Ruby,
etc...
MapReduce
12 |
MAP
REDUCE
HIVE
 Muito legal esse Map Reduce!
 Mas…
 Não sei programar em Java
 Não sei programar em Python
 Não sei programar em C#
 Não sei programar!!!!
HIVE
 Sou DBA, só entendo de TSQL, quero criar
meus jobs apenas utilizando queries, como já
faço no SQL Server.
 O HIVE faz isso!!!
HIVE
 Sou DBA, só entendo de TSQL, quero criar
meus jobs apenas utilizando queries, como já
faço no SQL Server.
 O HIVE faz isso!!!
 A query em HiveQL é “traduzida” para um
JOB MapReduce
 “The Apache Hive data warehouse software
facilitates querying and managing large
datasets residing in distributed storage.
 Hive provides a mechanism to project
structure onto this data and query the
data using a SQL-like language called
HiveQL.”
HIVE
16 |
 Databases:
 Nada mais que um caminho onde as tabelas
serão criadas, caso não seja criado um database
as tabelas serão criadas no path default
/hive/warehouse dentro da estrutura do HDFS.
 Tabelas:
 Basicamente um diretório onde armazenaremos
um ou mais arquivos, além de um catálogo da
estrutura desses arquivos.
Estrutura Hive
17 |
 Tabelas:
 Internal Tables x External Tables
 Internal Tables são criadas no HDFS e irá ser mantida
enquanto a tabela existir, caso seja feito um “DROP
TABLE” o diretório (e os dados), serão removidos.
 External Tables também são criadas no HDFS, porém
os arquivos são mantidos, mesmo que a tabela seja
removida.
Estrutura Hive
18 |
Creating Tables
19 |
CREATE TABLE table1
(col1 STRING,
col2 INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ';
CREATE TABLE table2
(col1 STRING,
col2 INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE LOCATION '/data/table2';
CREATE EXTERNAL TABLE table3
(col1 STRING,
col2 INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE LOCATION '/data/table3';
Internal table (folders
deleted when table is
dropped)
Default location
(/hive/warehouse/table1)
Stored in a custom
location (but still
internal, so the
folder is deleted
when table is
dropped)
External table
(folders and files are
left intact in Azure
Blob Store when the
table is dropped)
Hive data types include:
 Numeric
 Integers: TINYINT, SMALLINT, INT, BIGINT
 Fractional: FLOAT, DOUBLE, DECIMAL
 Character
 STRING, VARCHAR, CHAR
 Date/Time
 TIMESTAMP
 DATE
 Special
 BOOLEAN, BINARY, ARRAY, MAP, STRUCT,UNIONTYPE
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+
Types
Hive Data Types
20 |
Loading Hive Tables
 Save data files in table folders
 Use the LOAD statement
 Use the INSERT statement
 Use a CREATE TABLE AS SELECT (CTAS) statement
CREATE TABLE SummaryTable
ROW FORMAT DELIMITED FIELDS TERMINATED BY 't'
STORED AS TEXTFILE LOCATION '/data/summarytable'
AS
SELECT Col1, SUM(Col2) As Total
FROM MyTable
GROUP BY Col1;
LOAD DATA LOCAL INPATH '/data/source'
INTO TABLE MyTable;
DEMO
Hive Tables (Create, Load, Select, etc...)
 Query Execution Engine que minimiza as operações de
MAP (grandes responsáveis pelo I/O) não habilitada por
default no HDInsight 3.2
Tez
23 |
Hadoop
 Não podemos
esquecer que
estamos tratando
com arquivos
muito grandes!
 Como otimizar o
armazenamento
para melhorar
nossas
consultas?
Partitions and Buckets
25 |
Hive Partitions
CREATE TABLE part_table
(col1 INT,
col2 STRING)
PARTITIONED BY (col3 STRING);
INSERT INTO TABLE part_table PARTITION(col3='A')
SELECT col1, col2
FROM stg_table
WHERE col3 = 'A';
SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT INTO TABLE part_table PARTITION(col3)
SELECT col1, col2
FROM stg_table;
Hive Buckets
CREATE TABLE clust_table
(col1 INT,
col2 STRING,
col3 STRING)
CLUSTERED BY (col3) INTO 3 BUCKETS;
INSERT INTO TABLE clust_table
SELECT col1, col2, col3
FROM stg_table;
Hive Skews
CREATE TABLE skewed_table
(col1 INT,
col2 STRING,
col3 STRING)
SKEWED BY (col3) ON ('A')
STORED AS DIRECTORIES;
INSERT INTO TABLE skewed_table
SELECT col1, col2, col3
FROM stg_table;
DEMO
Manipulando Hive Tables
HiveQL x TSQL
 HiveQL é similar ao SQL com algumas diferenças:
 Não suporta transações
 Não possui Insert/Update/Delete… ainda…
 Baseado nos comandos do MySQL… que é similar ao T-
SQL
 Comentários com duplo hífen (--)
 Statements necessitam terminar por “ponto e virgula” ;
HiveQL x TSQL
 HiveQL possui suporte a JOINS
 INNER JOIN
 LEFT, RIGHT, FULL OUTER JOINS
 CROSS JOINS
Single Pass Multiple Results
 Preciso carregar os dados de uma tabela em
duas novas:
INSERT OVERWRITE TABLE sales
SELECT * FROM history WHERE action = ‘purchased’;
INSERT OVERWRITE TABLE credits
SELECT * FROM history WHERE action = ‘returned’;
2
SCANS!!
 E se...
FROM history
INSERT OVERWRITE sales SELECT * WHERE action = ‘purchased’
INSERT OVERWRITE credits SELECT * WHERE action = ‘returned’;
Dúvidas?
33 |
Obrigado!!
34
 Contatos:
 Twitter: @feldmanB
 E-mail: bfcosta@gmail.com
 Facebook: https://facebook.com/bfcosta
 Blog: http://brunofeldman.wordpress.com

Mais conteúdo relacionado

Destaque

WilliamKnowles 4Oct2015_1
WilliamKnowles 4Oct2015_1WilliamKnowles 4Oct2015_1
WilliamKnowles 4Oct2015_1Bill Knowles
 
UTS_komputerakuntansi_maulanaAbas_klstb3b
UTS_komputerakuntansi_maulanaAbas_klstb3bUTS_komputerakuntansi_maulanaAbas_klstb3b
UTS_komputerakuntansi_maulanaAbas_klstb3bmaulanabaskeren
 
WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"
WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"
WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"Gregory Taylor
 
2540 06 hsbc frustra bancários em negociação sobre emprego…
2540 06 hsbc frustra bancários em negociação sobre emprego…2540 06 hsbc frustra bancários em negociação sobre emprego…
2540 06 hsbc frustra bancários em negociação sobre emprego…Seeb Friburgo
 
Desarrollo sustentable
Desarrollo sustentableDesarrollo sustentable
Desarrollo sustentablecelimer
 
Website Mistakes done by great marketers.
Website Mistakes done by great marketers.Website Mistakes done by great marketers.
Website Mistakes done by great marketers.Eugene Otieno
 
Design Research Overview
Design Research OverviewDesign Research Overview
Design Research OverviewLisa Eldred
 
Digitalisering og BIM i byggeriet
Digitalisering og BIM i byggerietDigitalisering og BIM i byggeriet
Digitalisering og BIM i byggerietPia Sørensen
 
Ensayo ISLR Juthnnary
Ensayo ISLR JuthnnaryEnsayo ISLR Juthnnary
Ensayo ISLR Juthnnaryjuthnnary
 
Contacts & contours/ practice dentistry
Contacts & contours/ practice dentistryContacts & contours/ practice dentistry
Contacts & contours/ practice dentistryIndian dental academy
 
Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...
Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...
Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...Energy Digital Summit
 

Destaque (17)

WilliamKnowles 4Oct2015_1
WilliamKnowles 4Oct2015_1WilliamKnowles 4Oct2015_1
WilliamKnowles 4Oct2015_1
 
UTS_komputerakuntansi_maulanaAbas_klstb3b
UTS_komputerakuntansi_maulanaAbas_klstb3bUTS_komputerakuntansi_maulanaAbas_klstb3b
UTS_komputerakuntansi_maulanaAbas_klstb3b
 
JWright Resume 20115
JWright Resume 20115JWright Resume 20115
JWright Resume 20115
 
Bi 5
Bi 5Bi 5
Bi 5
 
WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"
WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"
WordCamp San Diego 2016: "Is Your Content Helping or Hurting You?"
 
2540 06 hsbc frustra bancários em negociação sobre emprego…
2540 06 hsbc frustra bancários em negociação sobre emprego…2540 06 hsbc frustra bancários em negociação sobre emprego…
2540 06 hsbc frustra bancários em negociação sobre emprego…
 
Desarrollo sustentable
Desarrollo sustentableDesarrollo sustentable
Desarrollo sustentable
 
Website Mistakes done by great marketers.
Website Mistakes done by great marketers.Website Mistakes done by great marketers.
Website Mistakes done by great marketers.
 
Design Research Overview
Design Research OverviewDesign Research Overview
Design Research Overview
 
Digitalisering og BIM i byggeriet
Digitalisering og BIM i byggerietDigitalisering og BIM i byggeriet
Digitalisering og BIM i byggeriet
 
1 respirasi
1 respirasi1 respirasi
1 respirasi
 
Ensayo ISLR Juthnnary
Ensayo ISLR JuthnnaryEnsayo ISLR Juthnnary
Ensayo ISLR Juthnnary
 
Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...
Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...
Abogado, asesor, consultor litigante administrador de empresas Inocencio mele...
 
Contacts & contours/ practice dentistry
Contacts & contours/ practice dentistryContacts & contours/ practice dentistry
Contacts & contours/ practice dentistry
 
Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...
Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...
Global Social Channels: A Panel Moderated by Deven Nonbgri - Energy Digital S...
 
La Keynote RepriseMedia 18/03/11
La Keynote RepriseMedia 18/03/11La Keynote RepriseMedia 18/03/11
La Keynote RepriseMedia 18/03/11
 
REX react native
REX react nativeREX react native
REX react native
 

Semelhante a HiveQL x TSQL: Uma introdução ao Hive no HDInsight

Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Thiago Santiago
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveFlavio Fonte, PMP, ITIL
 
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...Flavio Fonte, PMP, ITIL
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passosrhpinotti
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
TDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONTDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONThiago Santiago
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptxacsme
 
Rodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutRodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutIvanilton Polato
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 
Ciclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do HadoopCiclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do HadoopJeane Menegueli
 
Banco de dados oracle
Banco de dados oracleBanco de dados oracle
Banco de dados oracleEduardo Lopes
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoOpencadd Advanced Technology
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Ambiente Livre
 
Artigo data warehouse bd ii - 2015-1
Artigo data warehouse   bd ii - 2015-1Artigo data warehouse   bd ii - 2015-1
Artigo data warehouse bd ii - 2015-1Darlene Coelho
 

Semelhante a HiveQL x TSQL: Uma introdução ao Hive no HDInsight (20)

Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hive
 
BrunoSQLSaturday424
BrunoSQLSaturday424BrunoSQLSaturday424
BrunoSQLSaturday424
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
 
Qcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes WorkshopQcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes Workshop
 
Data Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na práticaData Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na prática
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passos
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Hadoop
HadoopHadoop
Hadoop
 
TDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONTDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ON
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptx
 
Rodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando MahoutRodando um Recomendador no Hadoop usando Mahout
Rodando um Recomendador no Hadoop usando Mahout
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
Ciclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do HadoopCiclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do Hadoop
 
Banco de dados oracle
Banco de dados oracleBanco de dados oracle
Banco de dados oracle
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
 
Artigo data warehouse bd ii - 2015-1
Artigo data warehouse   bd ii - 2015-1Artigo data warehouse   bd ii - 2015-1
Artigo data warehouse bd ii - 2015-1
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 

HiveQL x TSQL: Uma introdução ao Hive no HDInsight

  • 1. HiveQL x TSQL Uma introdução ao Hive no HDInsight Bruno Feldman da Costa bfcosta@gmail.com @feldmanB | facebook.com/bfcosta
  • 3.  Bruno Feldman da Costa  Tech Leader DB/BI at White Cube  MCT | MCSE Data Platform | OCP MySQL  Twitter: @feldmanB  E-mail: bfcosta@gmail.com  Facebook: https://facebook.com/bfcosta  Blog: http://brunofeldman.wordpress.com About Me! 3 |
  • 4.  Intro: Hadoop, HDInsight, Map Reduce, etc...  Hive: Conceitos  Diferenças entre HiveQL e TSQL  HiveQL:  Comandos básicos  Índices, Particionamento, Skews, Views Agenda 4 |
  • 5. Hadoop 5 |  Plataforma que fornece:  Um sistema de arquivos distribuído (HDFS) que armazena os dados entre vários servidores.  Um meio para armazenar/consultar (MapReduce/ YARN) esses dados distribuídos. HDFS Name Node Data Nodes Hadoop Cluster
  • 6.  Blocos de dados redundantes, distribuídos entre os nós do cluster.  Falhas nos nós são esperadas! HDFS – Hadoop Distributed File System 6 |
  • 7. Hadoop Ecosystem  Distribuições Hadoop  Cloudera CDH  Hortonworks Data Platform (HDP)  MapR  Microsoft Azure HDInsight
  • 8. Microsoft Azure HDInsight  Implementação do HDP no ambiente do Azure  VM’s com Windows Server (ou Linux) com HDP  WebHDFS (Azure Blob Storage)  Suporte a Powershell e SSIS  Escalabilidade  Rápida implementação
  • 9. DEMO  Criando um cluster HDInsight
  • 10. MapReduce  Dado dividido entre os data nodes  Cada nó faz o “MAP” gerando o par “KEY/Value”  O REDUCE faz a agregação.
  • 12.  Pode ser feito com Java, C#, Python, Ruby, etc... MapReduce 12 | MAP REDUCE
  • 13. HIVE  Muito legal esse Map Reduce!  Mas…  Não sei programar em Java  Não sei programar em Python  Não sei programar em C#  Não sei programar!!!!
  • 14. HIVE  Sou DBA, só entendo de TSQL, quero criar meus jobs apenas utilizando queries, como já faço no SQL Server.  O HIVE faz isso!!!
  • 15. HIVE  Sou DBA, só entendo de TSQL, quero criar meus jobs apenas utilizando queries, como já faço no SQL Server.  O HIVE faz isso!!!  A query em HiveQL é “traduzida” para um JOB MapReduce
  • 16.  “The Apache Hive data warehouse software facilitates querying and managing large datasets residing in distributed storage.  Hive provides a mechanism to project structure onto this data and query the data using a SQL-like language called HiveQL.” HIVE 16 |
  • 17.  Databases:  Nada mais que um caminho onde as tabelas serão criadas, caso não seja criado um database as tabelas serão criadas no path default /hive/warehouse dentro da estrutura do HDFS.  Tabelas:  Basicamente um diretório onde armazenaremos um ou mais arquivos, além de um catálogo da estrutura desses arquivos. Estrutura Hive 17 |
  • 18.  Tabelas:  Internal Tables x External Tables  Internal Tables são criadas no HDFS e irá ser mantida enquanto a tabela existir, caso seja feito um “DROP TABLE” o diretório (e os dados), serão removidos.  External Tables também são criadas no HDFS, porém os arquivos são mantidos, mesmo que a tabela seja removida. Estrutura Hive 18 |
  • 19. Creating Tables 19 | CREATE TABLE table1 (col1 STRING, col2 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '; CREATE TABLE table2 (col1 STRING, col2 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE LOCATION '/data/table2'; CREATE EXTERNAL TABLE table3 (col1 STRING, col2 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE LOCATION '/data/table3'; Internal table (folders deleted when table is dropped) Default location (/hive/warehouse/table1) Stored in a custom location (but still internal, so the folder is deleted when table is dropped) External table (folders and files are left intact in Azure Blob Store when the table is dropped)
  • 20. Hive data types include:  Numeric  Integers: TINYINT, SMALLINT, INT, BIGINT  Fractional: FLOAT, DOUBLE, DECIMAL  Character  STRING, VARCHAR, CHAR  Date/Time  TIMESTAMP  DATE  Special  BOOLEAN, BINARY, ARRAY, MAP, STRUCT,UNIONTYPE https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ Types Hive Data Types 20 |
  • 21. Loading Hive Tables  Save data files in table folders  Use the LOAD statement  Use the INSERT statement  Use a CREATE TABLE AS SELECT (CTAS) statement CREATE TABLE SummaryTable ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' STORED AS TEXTFILE LOCATION '/data/summarytable' AS SELECT Col1, SUM(Col2) As Total FROM MyTable GROUP BY Col1; LOAD DATA LOCAL INPATH '/data/source' INTO TABLE MyTable;
  • 22. DEMO Hive Tables (Create, Load, Select, etc...)
  • 23.  Query Execution Engine que minimiza as operações de MAP (grandes responsáveis pelo I/O) não habilitada por default no HDInsight 3.2 Tez 23 |
  • 24. Hadoop  Não podemos esquecer que estamos tratando com arquivos muito grandes!  Como otimizar o armazenamento para melhorar nossas consultas?
  • 26. Hive Partitions CREATE TABLE part_table (col1 INT, col2 STRING) PARTITIONED BY (col3 STRING); INSERT INTO TABLE part_table PARTITION(col3='A') SELECT col1, col2 FROM stg_table WHERE col3 = 'A'; SET hive.exec.dynamic.partition = true; SET hive.exec.dynamic.partition.mode=nonstrict; INSERT INTO TABLE part_table PARTITION(col3) SELECT col1, col2 FROM stg_table;
  • 27. Hive Buckets CREATE TABLE clust_table (col1 INT, col2 STRING, col3 STRING) CLUSTERED BY (col3) INTO 3 BUCKETS; INSERT INTO TABLE clust_table SELECT col1, col2, col3 FROM stg_table;
  • 28. Hive Skews CREATE TABLE skewed_table (col1 INT, col2 STRING, col3 STRING) SKEWED BY (col3) ON ('A') STORED AS DIRECTORIES; INSERT INTO TABLE skewed_table SELECT col1, col2, col3 FROM stg_table;
  • 30. HiveQL x TSQL  HiveQL é similar ao SQL com algumas diferenças:  Não suporta transações  Não possui Insert/Update/Delete… ainda…  Baseado nos comandos do MySQL… que é similar ao T- SQL  Comentários com duplo hífen (--)  Statements necessitam terminar por “ponto e virgula” ;
  • 31. HiveQL x TSQL  HiveQL possui suporte a JOINS  INNER JOIN  LEFT, RIGHT, FULL OUTER JOINS  CROSS JOINS
  • 32. Single Pass Multiple Results  Preciso carregar os dados de uma tabela em duas novas: INSERT OVERWRITE TABLE sales SELECT * FROM history WHERE action = ‘purchased’; INSERT OVERWRITE TABLE credits SELECT * FROM history WHERE action = ‘returned’; 2 SCANS!!  E se... FROM history INSERT OVERWRITE sales SELECT * WHERE action = ‘purchased’ INSERT OVERWRITE credits SELECT * WHERE action = ‘returned’;
  • 34. Obrigado!! 34  Contatos:  Twitter: @feldmanB  E-mail: bfcosta@gmail.com  Facebook: https://facebook.com/bfcosta  Blog: http://brunofeldman.wordpress.com