LevelUpWith

Explore / Cloud Pro: AWS Analytics: Choose, Compare and Launch / Lesson 2

Lesson 2: The Standard Analytics Profile

You learn a reusable profile that captures a workload's needs before any service is chosen. It records sources and volume, batch or streaming, how fresh results must be, query patterns and concurrency, who the users are, whether open formats such as Iceberg or Delta are required, governance and lineage, data residency, team skills and the preferred cost model.

Free to read, no account needed. Part of Cloud Pro: AWS Analytics: Choose, Compare and Launch.

By the end of this level you'll be able to

  • Fill in a complete analytics profile for a real or sample workload, with concrete numbers for volume, freshness and concurrency
  • Separate hard constraints, such as residency, latency SLAs and open-format requirements, from preferences you can trade off
  • Turn the profile answers into a shortlist of service groups from the Level 1 map

Profile the workload before you pick a service

Most bad analytics choices begin with a service name: "let's use Redshift" or "just put Athena on it". That's like a doctor writing the prescription before asking about symptoms. The standard analytics profile is the history you take first. It's one short document with ten answers. It describes the workload and names no service. Once it's filled in, many services drop out on their own and the choice gets much simpler.

You'll reuse this profile in every service lesson that follows. Each service gets judged against the same ten answers.

The ten questions

# Field Record this Vague (useless) Concrete (useful)
1 Sources and volume Systems, daily volume, growth, history kept "lots of data" "40 GB/day from Postgres + 3M clickstream events/hr, 3 years kept"
2 Batch or streaming How data arrives and gets processed "real-time-ish" "orders in nightly batch; clicks as a continuous stream"
3 Freshness Maximum age of data when someone looks at it "fast" "finance: by 07:00 daily; fraud flag: under 10 seconds"
4 Query patterns and concurrency Query shapes and the peak number of queries running at once "many users" "dashboards, 60 concurrent at 09:00 Monday; ad-hoc SQL, 5 at once"
5 Users Analysts, engineers, scientists, and the tools they use "the business" "25 analysts (SQL + BI), 4 engineers (Python/Spark), 3 scientists (notebooks)"
6 Open formats Must tables be Iceberg, Delta or Hudi, and who reads or writes them? "open would be nice" "Iceberg required: Databricks team must read the same tables"
7 Governance and lineage Access rules, PII, audit, lineage needs "secure" "column-level masking on email; lineage to source for audit"
8 Residency Where data may legally live and be processed "Europe probably" "UK only (contract clause 14.2)"
9 Team skills What the team can run on day one "we'll learn" "strong SQL, no Spark or Kafka operators on call"
10 Cost model Pay per query, per hour, reserved; who signs off "cheap" "predictable monthly bill preferred; budget cap set"

Gotcha: for concurrency, record the peak, not the headcount. 400 licensed users might mean 40 queries at once at 09:00 on Monday and almost nothing at 15:00. Sizing for 400 wastes money, and sizing for the average leaves the Monday-morning peak queuing.

Walkthrough: profiling a sample workload

Northwind Outdoor is a retailer with 120 stores. Keep the profile as a YAML file in the repo, next to the infrastructure code, so changes go through review.

# analytics-profile.yaml: describes the need, names no service
workload: northwind-sales-and-fraud
sources:
  - {name: orders_postgres, volume_per_day: 40GB, arrival: batch_nightly}
  - {name: pos_events,      volume_per_hour: 3M events (~1.5KB each), arrival: stream}
retention: 3 years raw, 7 years aggregates
freshness:
  sales_dashboards: "by 07:00 daily"   # batch is fine
  fraud_alerts: "< 10 seconds"         # needs streaming
concurrency: {dashboards_peak: 60, adhoc_sql_peak: 5}
users: {analysts: 25, engineers: 4, scientists: 3}
open_format: {required: iceberg, reason: "partner team reads tables with Spark"}
governance: {pii_columns: [email, phone], column_masking: true, lineage: required_for_audit}
residency: {region: eu-west-2, basis: "customer contract: UK only"}
skills: {sql: strong, spark: basic, kafka: none}
cost_model: {preference: predictable_monthly, cap_gbp: 15000}
# Tag every line HARD or PREF in the next step

Hard constraints vs preferences

Use one test on each line: if a service misses this, do we walk away, or just work harder or pay more? Walking away makes it a hard constraint. Working harder makes it a preference.

  • Hard: residency set by law or contract, a latency SLA such as fraud under 10 seconds, a required open format, and mandatory PII masking.
  • Preference: "we know SQL better than Spark" (people can learn), and "predictable bill" (can be traded against features).

Hard constraints filter: they remove options. Preferences rank what's left. Expect pressure to mark everything HARD. If everything is hard, you have no room to trade, so push back and ask "what happens if we miss it?"

Check hard constraints against facts, not memory. To see whether a service runs in your required Region, query the public parameters AWS publishes:

# List the services AWS reports in eu-west-2 (London), then filter for the ones you care about
aws ssm get-parameters-by-path \
  --path /aws/service/global-infrastructure/regions/eu-west-2/services \
  --query "Parameters[].Value" --output text | tr '\t' '\n' | grep -E '^(athena|redshift|kinesis|firehose)




Feature support needs the same care. Take open formats: Athena reads and writes Iceberg tables. For Delta Lake tables it only reads them, they must be registered in AWS Glue, and it supports neither Delta time travel nor INSERT/UPDATE/DELETE. Redshift has supported writing to Iceberg tables since November 2025, aimed at append-only workloads. A line reading "Delta, with writes from SQL" therefore rules out some pairings before you've compared a single price.

From profile to shortlist

Next, map the answers onto the service groups from Level 1.

Profile signal Groups that go on the shortlist
Freshness in seconds, continuous arrival Streaming and messaging (Kinesis Data Streams, Amazon Data Firehose, MSK, Managed Service for Apache Flink)
Heavy repeated dashboards, high concurrency Warehouses and lakehouses
Occasional ad-hoc SQL on files in S3 Query engines
Batch loads from databases and SaaS Data integration and pipelines
Large Spark jobs, scientists in notebooks Big data processing
PII masking, lineage, many teams sharing data Catalogues and governance
Analysts need dashboards Business intelligence (Amazon Quick Sight, formerly QuickSight, now part of Amazon Quick)

For Northwind this gives a shortlist across streaming (fraud under 10 s), warehouse or query engine (60 concurrent dashboards), integration (nightly Postgres), catalogue and governance (masking plus lineage) and BI. The Iceberg requirement means each candidate must read and write Iceberg, and London residency means each one must run in eu-west-2. Those hard filters get applied first, and Kafka-heavy options lose points because the team has no Kafka skills.

Best practice: date the profile and add a named owner. Freshness and volume answers go stale quickly. When someone says "we need real time now", update the profile first, then revisit the choice.

Key takeaways

  • Write the profile before naming any service, and keep it as a reviewed file in the repo.
  • Every answer needs a number or a named fact. "Fast" and "lots" don't count.
  • Record peak concurrency, not total users.
  • Hard constraints (residency, latency SLAs, required open formats, mandatory masking) filter options out. Preferences (skills, cost style) rank the ones that remain.
  • Check hard constraints against current documentation, such as Regional availability and per-engine open-format support.
  • Each profile signal points to one or more Level 1 service groups, and together they form the shortlist.

A 6-question knowledge check follows this lesson in the app, free and without an account.

Keep going: levels 3 and 4 are free

Create a free account to open the next two levels, save your progress and pick up where you left off. No card needed.

Next: Level 3, How AWS Analytics Is Billed: The Cost Levers.

Create a free account →See the whole course

More like this

  • Cloud Pro: AWS Containers: Choose, Compare and Launch

    Choose the right AWS container service for a real workload and run it in production: EKS with Auto Mode or Karpenter, ECS on Fargate or EC2, ECS Express Mode,…

    Course · AWS · Cloud Pro: Choose and Use · Expert · 37 levels · 4 free · Professionally curated by levelupwith.com

  • Cloud Pro: AWS Security and Identity: Choose, Compare and Launch

    Build a security profile for any workload, then choose, cost and launch the right AWS identity, key, secrets, detection and audit services from the CLI and inf…

    Course · AWS · Cloud Pro: Choose and Use · Expert · 31 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified Cloud Practitioner (CLF-C02) Exam Prep

    Recognise every in-scope AWS service, reason through shared responsibility, Well-Architected, pricing and support scenarios, and answer multiple-choice and mul…

    Exam prep · CLF-C02 · Cloud & Compute · Expert · 42 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified AI Practitioner (AIF-C01) Exam Prep

    Work through all five AIF-C01 domains and every task statement so you can pick the right AI, ML or generative AI approach and the right AWS service for a busin…

    Exam prep · AIF-C01 · AI & Agents · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • Ultimate AWS SAA-C03 Mastery Path

    Master AWS Solutions Architecture across security, resilience, performance, and cost domains to confidently pass the SAA-C03 exam.

    Exam prep · SAA-C03 · Cloud & Compute · Expert · 45 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified Developer - Associate (DVA-C02) Exam Prep

    Work through every domain, task and in-scope service of the AWS Certified Developer - Associate (DVA-C02) exam guide v2.1 at developer depth, with SDK and CLI…

    Exam prep · DVA-C02 · Cloud & Compute · Expert · 61 levels · 4 free · Professionally curated by levelupwith.com