Learning Record Store�Architecture
Jason Paluck and Damian Doyle
UMBC
www.umbc.edu
Data Warehouse Connections:
- PS Student (+ FinAid and Student Billing)
- PS Finance
Incoming
- PS HR
- OUE (Academic Policy Exceptions)
- First Year Experience Alerts
- LRC (Tutor)
- LRC (Supplemental Instruction)
- Symplicity (Accommodate)
- Global Viewer (Projectors)
- RT (Request Tracker)
- PT (Project Tracker)
- ImageNow
- Blackboard Learn
- NuPark (Parking Services)
- Symplicity (Residence)
- Campus Card
- GradesFirst
- Point and Click (Health Services)
- UMBC Bookstore
- myUMBC Check My Activity (CMA)
- myUMBC Course Catalog
- Central Payroll Bureau
- Division of Professional Studies
Bi-directional
Outgoing
Legend
- Daily
- Bi-weekly
- Quarter hour
- Semesterly
- On demand
- Visual Arts (AV equipment; card swipe)
- Symplicity (Advocate [Judicial])
- UMBCWorks (Career Center)
- myUMBC
- ARMS (Athletes)
- Pharos (Printing Kiosks)
- PowerLogic (Electric Meters)
- UniversityTickets
www.umbc.edu
UMBC Learning Record Store
www.umbc.edu
Amazon S3
AWS
Lambda
Amazon �Redshift
Amazon CloudFront
AWS Glue
Amazon Kinesis Firehose
Amazon API Gateway
Caliper Event Stream
Clients
Contextual Relational Data (SIS, Student portal, Analytics for Learn, etc)
Contextual non-relational data (VitalSource books, users, etc)
www.umbc.edu
Step 1: Ingest Events
Amazon S3
AWS
Lambda
Amazon �Redshift
Amazon CloudFront
AWS Glue
Amazon Kinesis Firehose
Amazon API Gateway
Caliper Event Stream
Clients
Contextual non-relational data (VitalSource books, users, etc)
Contextual Relational Data (SIS, Student portal, Analytics for Learn, etc)
www.umbc.edu
Step 1: Ingest Events
www.umbc.edu
Step 2: Unpack Events
Amazon S3
AWS
Lambda
Amazon �Redshift
Amazon CloudFront
AWS Glue
Amazon Kinesis Firehose
Amazon API Gateway
Caliper Event Stream
Clients
Contextual non-relational data (VitalSource books, users, etc)
Contextual Relational Data (SIS, Student portal, Analytics for Learn, etc)
www.umbc.edu
Step 2: Unpack Events
www.umbc.edu
Step 2: Unpack Events
def lambda_handler(event, context):
firehose = boto3.client('firehose')
try:
for loadedEvent in event['data']:
dumpedEvent = json.dumps(loadedEvent)
response = firehose.put_record(DeliveryStreamName='blackboard_caliper_events', Record={'Data': dumpedEvent})
logger.info('Event received!')
except Exception as e:
logger.info('Event {0}'.format(event))
logger.error(e)
www.umbc.edu
Step 3: Data Lake Storage
Amazon S3
AWS
Lambda
Amazon �Redshift
Amazon CloudFront
AWS Glue
Amazon Kinesis Firehose
Amazon API Gateway
Caliper Event Stream
Clients
Contextual non-relational data (VitalSource books, users, etc)
Contextual Relational Data (SIS, Student portal, Analytics for Learn, etc)
www.umbc.edu
Step 3: Data Lake Storage
www.umbc.edu
Step 4: ETL
Amazon S3
AWS
Lambda
Amazon �Redshift
Amazon CloudFront
AWS Glue
Amazon Kinesis Firehose
Amazon API Gateway
Caliper Event Stream
Clients
Contextual non-relational data (VitalSource books, users, etc)
Contextual Relational Data (SIS, Student portal, Analytics for Learn, etc)
www.umbc.edu
Step 4: Extract, Transform & Load
www.umbc.edu
Step 4: Extract, Transform & Load
www.umbc.edu
Step 5: Data Warehouse
Amazon S3
AWS
Lambda
Amazon �Redshift
Amazon CloudFront
AWS Glue
Amazon Kinesis Firehose
Amazon API Gateway
Caliper Event Stream
Clients
Contextual non-relational data (VitalSource books, users, etc)
Contextual Relational Data (SIS, Student portal, Analytics for Learn, etc)
www.umbc.edu
Step 5: Relational Data Warehouse
www.umbc.edu
www.umbc.edu
Ingesting Streaming Campus Activity Data
“Student 123 declared major X”
PeopleSoft SIS
Apache NiFi
AWS S3 Data Lake
“WiFi client ABC dwelled 17 minutes in building 1, floor 2, room X”
Cisco CMX WiFi
JMS
REST API
www.umbc.edu
Tomorrow: Student Analytics Hub
19
Streaming Event Data
Blackboard Caliper Events
VitalSource Caliper Events
Ingest Event Streams
Enrichen and Load
Transform in Memory
SIS Events
Student Portal Events
WiFi Location Events
Student Activity Events
AWS S3 Data Lake
Blackboard Caliper Events
VitalSource Caliper Events
SIS Events
Student Portal Events
WiFi Localtion Events
Student Activity Events
Snowflake Warehouse
Semi-structured data
Curated Views
www.umbc.edu