Upload
tdc-globalcode
View
119
Download
1
Embed Size (px)
Citation preview
pen4education
Trilha – Big DataMarco Antonio LopesCientista de Dados no Itaú
Professor de Big Data e IoT na FIA
pen4education
Marco Antonio Lopes
• Formação:• Mestrando em Estatística - FEA-USP
• Bacharel em Ciências da Computação - UNESP Bauru
• Pós Graduação em Data Mining - FIA
• MBA em Big Data Analytics - FIA
• Experiência:• Cientista de Dados - Itaú Unibanco S.A.
• Professor nos cursos de Big Data e IoT da FIA
• Arquiteto de Soluções Big Data - Itaú Unibanco S.A. (2014 - 2016)
• Analista de Sistemas - CESP (2010 - 2014)
pen4education
Agenda
• MongoDB• Hive• Por que conectá-los?• Como conectá-los?
pen4education
MongoDB
• NoSQL• Orientado a documentos• Consistente
• Todo mundo lê a mesma coisa• Tolerante a partição
• Em caso de falha, continua operante• Baixa latência
pen4education
Hive
Hadoop / HDFS
HIVE Metastore
pen4education
Hive
• Mapeia arquivos no HDFS• xml, json, csv, posicional, …
• SQL rodando no Hadoop• Data Warehouse• Todas as vantagens do Hadoop• Porém
• Alta latência• Não é transacional
pen4education
Por que conectá-los?
• Unir o melhor de dois mundos• Velocidade do MongoDB• Capacidade de processamento do Hive
• Criação de arquiteturas Big Data• Responsividade• Análises estatísticas em grandes volumes de dados
pen4education
Por que conectá-los?
pen4education
Como conectá-los?
• Tabela Hive apontando para o Mongodb
CREATE EXTERNAL TABLE tabela_hive( Campo1 STRING, Campo2 STRING)STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'WITH SERDEPROPERTIES('mongo.columns.mapping'= '{"Campo1":"Campo1", "Campo2":"Campo2"}')TBLPROPERTIES( 'mongo.uri'='mongodb://localhost:27017/database.collection');
pen4education
Como conectá-los?
• Exportar dados do mongodb como jsonmongoexport --db database --collection collection --out contacts.json
• Carregar o json como tabela no Hive
CREATE TABLE tabela_hive (id int,campo1 string,scores array<struct<chave:string, valor:double>>)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'STORED AS TEXTFILE;
pen4education
Como conectá-los?
• Ou fazer uso de UDFs
CREATE TABLE tabela_hive (id int,json string )
STORED AS TEXTFILELOCATION ‘caminho/para/o/json/;
SELECTget_json_object(json, "$.campo1") as campo1
FROM tabela_hive;
pen4education
Como conectá-los?
• Caminho de voltaCREATE TABLE salva_arquivo AS select * from tabelaROW FORMAT FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’LOCATION ‘caminho/para/csv’;
mongoimport --db database --collection col --type csv --file tabela_hive.csv
pen4education
Como conectá-los?
• Outras formas• Desenvolver a própria interface• Utilizar Flume com sink para mongo
pen4education
Dúvidas???
pen4education
Obrigado!!!
Marco Antonio Lopes
https://www.linkedin.com/in/marcolopes86
@marco_lopes