
The full source is provided here of the entire course for you to review and modify to your liking.
Explore how AWS serverless data lake components—S3, Kinesis Data Firehose, Glue, and Athena—work together to ingest, catalog, and analyze data with real-time streaming and scalable ETL.
Create an S3 bucket with a unique name, enable versioning and default encryption, and block all public access to prepare the base for a data lake.
Create an rds sql server instance on the aws free tier to enable integration with glue etl and kinesis data streams, including a publicly accessible endpoint and basic security settings.
Create a Kinesis data firehose delivery stream with direct put, route data to S3, and configure 128 MB or 60 seconds buffering, planning parquet conversion.
Create a console .NET core C# app using entity framework to map grade and student models, apply code-first migrations to an RDS SQL Server database, enabling Kinesis Firehose data integration.
Create a public Kinesis Firehose base class to populate the stream. Install the Firehose extensions and core packages, then authenticate via AWS profiles and implement batch posting with record splitting.
Send json data from a code-first entity framework database to the Students firehose delivery stream using the AWS SDK for .NET, batching up to 500 records.
Configure an AWS Glue crawler to scan an S3 data store, create a schema and data catalog tables, and schedule hourly runs for seamless Athena querying.
Explore querying data in Athena with SQL against a Glue cataloged table, configure S3 query results, and optimize with Parquet via a Firehose pipeline.
Create aws glue etl jobs to extract, transform, and load from s3 into a sql server instance via athena, with vpc endpoints.
Automate data delivery from .NET apps to Kinesis Firehose with Hangfire, using SQL Server storage and recurring jobs, while monitoring in console and storing to S3 via Glue and Athena.
Explore AWS lake formation and see how it simplifies organizing your data lake with a data catalog, crawlers, ETL jobs, and permission management for AWS Glue and IAM roles.
Explore Amazon Cognito for authenticating users with user pools and identity pools, configure app clients with id and secret, and use the hosted UI and oauth 2.0 flows.
Explore Parquet .NET as an alternative to using Firehose, building and streaming locally created parquet files to S3 via Cognito credentials and AWS transfer utility, for compressed, efficient data storage.
Summarizes a cost-aware, serverless data lake workflow using Glue, Kinesis Firehose, and S3 with Athena, showing how to minimize charges and clean up resources after a proof-of-concept.
The purpose of this class is to demonstrate a proof of concept using a series of lab exercise's (in the AWS Console using AWS Kinesis Data Firehose, AWS Glue, S3, Athena and the AWS SDK, with C# code using the AWS SDK) of building a Data Lake in the AWS ecosystem.
In this class, we will be sending data from a local SQL Server database to AWS RDS securely, and automatically.
I am utilizing the .NET SDK for AWS, however, this could easily be migrated to your language of choice once you understand the concepts that I am teaching.
I will be providing the full working source code of this proof of concept.
I will also provide a working example of creating Parquet files and sending to S3 (without using Firehose).