29
Daniel Dao & Nick Buroojy Guest Lecture

Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

DanielDao&NickBuroojy

GuestLecture

Page 2: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

OVERVIEWWhatisCivitasLearning

WhatWeDo

MissionStatement

Demo

WhatIDo

HowIUseDatabases

NickBuroojy

Page 3: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

WHATISCIVITASLEARNING

CivitasLearning

Mid-sizedstartup

Datadrivencompany Education

Page 4: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

“Wepartnerwithforward-thinkingcollegesanduniversities,harnessingthepowerofinsightandactionanalyticstohelpamillionmorestudentslearnwellandfinishstrong.”– TheMillionMoreMission

Page 5: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

WHATWEDO

• Workwithinstitutionstoprovideinsightsthroughvariousapplications• Inspire

Page 6: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

InspireforFacultyDemo

Page 7: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

WHATIDO

• Myroleinthecompany• Howmyworkisbrokendown• Product

• Devmanagers,PSMs,engineers• Frontend

• WorkwithHTML/CSS/ReactJS• Backend

• WritingAPIs• Workingwithmodels• WritingSQL• Optimizingperformance• Writingtests

Page 8: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

HOWIUSEDATABASES

Page 9: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

NickBuroojy• GraduatedfromCarnegieMellon• BachelorsinComputerScience

• SoftwareEngineering• I'vebeenworkinginSoftwareforabout6 years• I'vebeenatCivitasforthreeyears• I’veworkedatApple,Google,Civitas

Page 10: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

GoalsAttheendofthislecture,youwillbeableto:• DescribetheprocessCivitasusestomanipulatedata.• Describethedifferencesbetweencolumnandroworienteddatastores• ExplainhowRedshiftusesdistributedcomputeforqueryperformance• DescribetheuseofthedatalayoutoptionsDIST_KEYandSORT_KEY

Page 11: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

CivitasDataFlow

LoadExtract

RedShift

WebServer

SecureFileTransferProtocol

Transform

Extract

Load

ExtractTransform

LoadLoad

Page 12: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Extract• Aslongasthedataisinthetables,thereareexportcommandsthatcansimplydumpthedatatoafile.

APP

APP

LOADRAW

RAW

RAW

PostGres

Page 13: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Transform

SRC_

SRC_

SRC_

RAW

RAW SELECTSPBPERS.SPBPERS_PIDMASraw_person_id,SPBPERS.SPBPERS_BIRTH_DATEASraw_birth_dt,SPBPERS.SPBPERS_DEAD_DATEASraw_death_dt,SPBPERS.SPBPERS_SEXASraw_gender,nullASraw_primary_language,nullASraw_country_of_originFROMsrc_banner_saturn.spbpers

Page 14: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

LoadRedShift

TableFile

SFTP

Flatfile:PlainTextfilethatisnon-hierarchical,usuallyintheformofCSV,orTSV.Eachrowrepresentsonerowinthedatabase.

Table

Table

Page 15: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

DataFlow

RedShift

WebServer

SecureFileTransferProtocol

Page 16: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

RedshiftPerformance• Columnardatastorage• Distributeddatastorage• DIST_KEY• SORT_KEY• Parallelqueryexecution• COPY/UNLOAD

Page 17: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Columnardatastorage

Row-orienteddatastoreexample:

Source:docs.aws.amazon.com

Page 18: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Columnardatastorage

Column-orienteddatastoreexample:

Source:docs.aws.amazon.com

Page 19: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Distributeddatastorage• Why?• DBconstraints• Disk• CPU• Network

Page 20: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Partialaggregations• SUM

136 61683567

10+21+15+6

6152110

Page 21: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Partialaggregations• COUNT

136 61683567

3+4+3+1

1343

Page 22: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Partialaggregations• AVG=SUM/COUNT

136 61683567

SUM/COUNT

Page 23: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Partialaggregations• Redshiftcandistribute• AVG• SUM• COUNT• MAX• MIN• STDDEV• …

• Morechallenging(slower)• COUNTDISTINCT• ORDERBYxLIMITn

Page 24: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

DISTKEY• AllowsRedshiftusertospecifywhichrecordsareonthesamenode• Usedtokeepbalanced• Usedforjoinlocality• Canperformajoinwithout“shuffling”.Thatis,sendingdatabetweennodes.

Page 25: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

SORTKEY• Ordersofstorageforrecords• Allowsqueriestoskipranges• Allowsforfasterjoins(mergevs.hash)• FasterORDERBYqueries

Page 26: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

PRIMARYKEY• Redshiftdoesn’tenforceprimarykeysorforeignkeys• Primarykeymustbenon-nullandunique• Usedbyqueryoptimizer• Civitas checksourkeysafterbuildingeachtable• COUNT(pk)==COUNT(*)==COUNT(DISTINCTpk)

Page 27: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

COPY• Loadsflatfiledatafrombulkstorage(S3)intoRedshift• Eachnodeloadssomepartsofthedata• Masterdoesn’ttouchthedata,andisnotabottleneck• Unload:oppositedirection.Redshift->S3

Page 28: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Summary• ProcessCivitasusestomanipulatedata.• Columnardatalayout• Distributedqueryaggregations• Datalayoutoptions

• CareersatCivitas Learning

Page 29: Daniel Dao & Nick Buroojyscohen/cs327e_spr17/... · Demo What I Do How I Use Databases Nick Buroojy. CIVITAS LEARNING, INC. – CONFIDENTIAL INFORMATION WHAT IS CIVITAS LEARNING Civitas

CIVITASLEARNING,INC.– CONFIDENTIALINFORMATION

Questions?