15
pen4education Trilha – Big Data Marco Antonio Lopes Cientista de Dados no Itaú Professor de Big Data e IoT na FIA

TDC2016SP - Trilha BigData

Embed Size (px)

Citation preview

Page 1: TDC2016SP - Trilha BigData

pen4education

Trilha – Big DataMarco Antonio LopesCientista de Dados no Itaú

Professor de Big Data e IoT na FIA

Page 2: TDC2016SP - Trilha BigData

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)

Page 3: TDC2016SP - Trilha BigData

pen4education

Agenda

• MongoDB• Hive• Por que conectá-los?• Como conectá-los?

Page 4: TDC2016SP - Trilha BigData

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

Page 5: TDC2016SP - Trilha BigData

pen4education

Hive

Hadoop / HDFS

HIVE Metastore

Page 6: TDC2016SP - Trilha BigData

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

Page 7: TDC2016SP - Trilha BigData

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

Page 8: TDC2016SP - Trilha BigData

pen4education

Por que conectá-los?

Page 9: TDC2016SP - Trilha BigData

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');

Page 10: TDC2016SP - Trilha BigData

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;

Page 11: TDC2016SP - Trilha BigData

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;

Page 12: TDC2016SP - Trilha BigData

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

Page 13: TDC2016SP - Trilha BigData

pen4education

Como conectá-los?

• Outras formas• Desenvolver a própria interface• Utilizar Flume com sink para mongo

Page 14: TDC2016SP - Trilha BigData

pen4education

Dúvidas???

Page 15: TDC2016SP - Trilha BigData

pen4education

Obrigado!!!

Marco Antonio Lopes

[email protected]

https://www.linkedin.com/in/marcolopes86

@marco_lopes