From 3c81955c18d7f6bc4af8d29bd4c40bb01d88ae85 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 13:36:19 -0700 Subject: [PATCH 01/15] WIP setting up mkdocs --- code-review.md => docs/code-review.md | 0 docs/index.md | 3 +++ naming-conventions.md => docs/naming-conventions.md | 6 +++--- security.md => docs/security.md | 0 mkdocs.yml | 3 +++ requirements-docs.txt | 1 + 6 files changed, 10 insertions(+), 3 deletions(-) rename code-review.md => docs/code-review.md (100%) create mode 100644 docs/index.md rename naming-conventions.md => docs/naming-conventions.md (97%) rename security.md => docs/security.md (100%) create mode 100644 mkdocs.yml create mode 100644 requirements-docs.txt diff --git a/code-review.md b/docs/code-review.md similarity index 100% rename from code-review.md rename to docs/code-review.md diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..349a773a --- /dev/null +++ b/docs/index.md @@ -0,0 +1,3 @@ +# Welcome to CalData DSE + +Hello, world diff --git a/naming-conventions.md b/docs/naming-conventions.md similarity index 97% rename from naming-conventions.md rename to docs/naming-conventions.md index a2a212ee..7b6f785b 100644 --- a/naming-conventions.md +++ b/docs/naming-conventions.md @@ -5,7 +5,7 @@ This page documents the Data Services and Engineering (DSE) team's naming conven ## General Approach Our approach is adapted from [this blog post](https://stepan.wtf/cloud-naming-convention/). -The goals of establishing a naming convetion are: +The goals of establishing a naming convention are: 1. Prevent name collisions between similar resources (especially in cases where names are required to be unique). 1. Allow developers to identify at a glance what a particular resource is and who owns it. 1. Structured naming allows for easier sorting and filtering of resources. @@ -99,7 +99,7 @@ Furthermore, analysts needn't need to know details of regions or deployments, so ``` If a project is owned by the Data Services and Engineering team, -the `owner` component may be ommited, and the schema name is simply +the `owner` component may be omitted, and the schema name is simply ``` {project}_[{description}] ``` @@ -140,7 +140,7 @@ The schemas into which a fivetran connector is writing should be named the same (which is why the connector name has some seemingly redundant information). If a project is owned by the Data Services and Engineering team, -the `owner` component may be ommited, and the schema name is simply +the `owner` component may be omitted, and the schema name is simply ``` fivetran_{project}_{connector_type}_[{description}] ``` diff --git a/security.md b/docs/security.md similarity index 100% rename from security.md rename to docs/security.md diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..a4d1c4c4 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,3 @@ +site_name: CalData Data Services and Engineering Infrastructure +theme: + name: material diff --git a/requirements-docs.txt b/requirements-docs.txt new file mode 100644 index 00000000..b8c65086 --- /dev/null +++ b/requirements-docs.txt @@ -0,0 +1 @@ +mkdocs-material==9.1.3 From 7b9ab472c572c74e93047146c3c4cc7d3cf14a86 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 13:59:55 -0700 Subject: [PATCH 02/15] Do some theming --- docs/images/odi-circle_logomark-blue.png | Bin 0 -> 10375 bytes docs/images/odi-square_logomark-blue.svg | 4 ++++ docs/stylesheets/extra.css | 12 ++++++++++++ mkdocs.yml | 4 ++++ 4 files changed, 20 insertions(+) create mode 100644 docs/images/odi-circle_logomark-blue.png create mode 100644 docs/images/odi-square_logomark-blue.svg create mode 100644 docs/stylesheets/extra.css diff --git a/docs/images/odi-circle_logomark-blue.png b/docs/images/odi-circle_logomark-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..5e594697213f7640ed1cf35e7fd5a9d144a1db71 GIT binary patch literal 10375 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 XT+mS4Kol--5P0%f<588OS;+qY@ux)4 literal 0 HcmV?d00001 diff --git a/docs/images/odi-square_logomark-blue.svg b/docs/images/odi-square_logomark-blue.svg new file mode 100644 index 00000000..deb7ad3f --- /dev/null +++ b/docs/images/odi-square_logomark-blue.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 00000000..988d64d5 --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,12 @@ +:root { + --md-primary-fg-color: #00315F; + --md-primary-fg-color--light: #0D4F8C; + --md-primary-fg-color--dark: #00315F; + --md-primary-bg-color: #ECF1F6; + --md-primary-bg-color--light: #FAECDA; + + --md-accent-fg-color: #E3881B; + --md-accent-fg-color--transparent: #FAFAFA; + --md-accent-bg-color: #FAECDA; + --md-accent-bg-color--light: #FAFAFA; +} diff --git a/mkdocs.yml b/mkdocs.yml index a4d1c4c4..e3e9cfb8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,3 +1,7 @@ site_name: CalData Data Services and Engineering Infrastructure theme: name: material + logo: images/odi-square_logomark-blue.svg + favicon: images/odi-circle_logomark-blue.png +extra_css: + - stylesheets/extra.css From 39adf2430a8b475cd0a101cdbc33b6572aa62a5b Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 14:24:48 -0700 Subject: [PATCH 03/15] Configure extensions for code highlighting, mermaid, admonitions --- .pre-commit-config.yaml | 2 ++ mkdocs.yml | 12 ++++++++++++ requirements-docs.txt | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1b8d530f..972350d0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,6 +3,8 @@ repos: rev: v4.4.0 hooks: - id: check-yaml + args: + - --unsafe - id: check-json - id: end-of-file-fixer - id: trailing-whitespace diff --git a/mkdocs.yml b/mkdocs.yml index e3e9cfb8..10eca947 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,3 +5,15 @@ theme: favicon: images/odi-circle_logomark-blue.png extra_css: - stylesheets/extra.css + +markdown_extensions: + - toc: + permalink: true + - admonition + - pymdownx.highlight: + auto_title: false + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format diff --git a/requirements-docs.txt b/requirements-docs.txt index b8c65086..b7e22ae1 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -1 +1 @@ -mkdocs-material==9.1.3 +mkdocs-material~=9.1.3 From ed5cd0d6df690a51fba6549eb327071b2587a34a Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 14:37:56 -0700 Subject: [PATCH 04/15] Add docs deploy action --- .github/workflows/docs.yml | 22 ++++++++++++++++++++++ docs/security.md | 1 + 2 files changed, 23 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..a3596321 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,22 @@ +name: docs +on: + push: + branches: + - main + - mkdocs +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - uses: actions/cache@v2 + with: + key: ${{ github.ref }} + path: .cache + - run: pip install mkdocs-material + - run: mkdocs gh-deploy --force diff --git a/docs/security.md b/docs/security.md index 81f33f91..aa2b7201 100644 --- a/docs/security.md +++ b/docs/security.md @@ -8,6 +8,7 @@ especially as it relates to cloud and SaaS services. The major public clouds (AWS, GCP, Azure) all have a service for Identity and Access Management (IAM). This allows us to manage which users or services are able to perform actions on which resources. In general, IAM is described by: + * Users (or principals) - some person or workflow which uses IAM to access cloud resources. * Permissions - an ability to perform some action on a resource or collection of resources. * Policies - a group of related permissions for performing a job, which can be assigned to a role or user. From f2495b7d9f744f34ab198b069840a177d4ce7a73 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 14:51:30 -0700 Subject: [PATCH 05/15] Work on nav --- mkdocs.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index 10eca947..c17ee25e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,9 +3,17 @@ theme: name: material logo: images/odi-square_logomark-blue.svg favicon: images/odi-circle_logomark-blue.png + features: + - content.code.copy extra_css: - stylesheets/extra.css + +repo_name: cagov/data-infrastructure +repo_url: https://github.com/cagov/data-infrastructure +edit_uri: "" + + markdown_extensions: - toc: permalink: true @@ -17,3 +25,9 @@ markdown_extensions: - name: mermaid class: mermaid format: !!python/name:pymdownx.superfences.fence_code_format + +nav: + - Introduction: index.md + - Code Review: code-review.md + - Naming Conventions: naming-conventions.md + - Security Guidelines: security.md From 17c32a288ca60eddb7dd675b41db687b1acba467 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 15:06:33 -0700 Subject: [PATCH 06/15] Move some cloud/terraform docs to the main docs --- .pre-commit-config.yaml | 2 + docs/cloud-resources.md | 207 ++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + terraform/README.md | 115 ---------------------- 4 files changed, 210 insertions(+), 115 deletions(-) create mode 100644 docs/cloud-resources.md diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 972350d0..d1adc5ca 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,6 +20,8 @@ repos: - repo: https://github.com/terraform-docs/terraform-docs rev: v0.16.0 hooks: + - id: terraform-docs-go + args: ["./terraform", "--output-file", "../docs/cloud-resources.md"] - id: terraform-docs-go args: ["./terraform"] - id: terraform-docs-go diff --git a/docs/cloud-resources.md b/docs/cloud-resources.md new file mode 100644 index 00000000..c0cf713a --- /dev/null +++ b/docs/cloud-resources.md @@ -0,0 +1,207 @@ +# CalData Cloud Infrastructure + +The DSE team uses Terraform to manage cloud infrastructure. +Our stack includes: + +* An [AWS Batch](https://aws.amazon.com/batch/) environment for running arbitrary containerized jobs +* A [Managed Workflows on Apache Airflow](https://aws.amazon.com/managed-workflows-for-apache-airflow/) environment for orchestrating jobs. +* A VPC and subnets for the above +* An ECR repository for hosting Docker images storing code and libraries for jobs +* A bot user for running AWS operations in GitHub Actions +* An S3 scratch bucket + +## Architecture + +```mermaid +flowchart TD + subgraph AWS + J[GitHub CD\nbot user] + G[Artifact in S3] + subgraph VPC + subgraph Managed Airflow + K1[Scheduler] + K2[Worker] + K3[Webserver] + end + F[AWS Batch Job\n on Fargate] + end + E[AWS ECR Docker\nRepository] + end + subgraph GitHub + A[Code Repository] + end + E --> F + A -- Code quality check\n GitHub action --> A + A -- Job submission\nvia GitHub Action --> F + A -- Docker build \nGitHub Action --> E + A --> H[CalData\nadministrative\nuser] + H -- Terraform -----> AWS + K2 -- Job submission\nvia Airflow --> F + K1 <--> K2 + K3 <--> K1 + K3 <--> K2 + F --> G + J -- Bot Credentials --> A +``` + +## Setup + +### Installation + +This project requires Terraform to run. +You might use any of a number of different package managers to install it depending on your system. + +For Macs, you can use `brew`: + +```bash +brew install terraform +``` + +Anaconda users on any architecture should be able to use `conda` or `mamba`: + +```bash +conda install -c conda-forge terraform +``` + +We also use `tflint` for linting, and `terraform-docs` to help with documentation of resources. +These can be installed in the same manner, e.g.: + +```bash +conda install -c conda-forge tflint go-terraform-docs +``` + +There are a number of pre-commit checks that run on committing as well as in CI. +To install the checks, run the following from the repository root: + +```bash +pre-commit install +``` + +You can manually run the pre-commit checks using + +```bash +pre-commit run --all-files +``` + +### Bootstrapping remote state + +When deploying a new version of your infrastrucutre, Terraform diffs the current state +against what you have specified in your infrastructure-as-code. +The current state is tracked in a JSON document, +which can be stored in any of a number of locations (including local files). + +This project stores remote state using the [S3 backend](https://developer.hashicorp.com/terraform/language/settings/backends/s3). +Before you can stand up the main infrastructure, you must first prep the remote state backend: + +```bash +cd remote-state +terraform init +terraform apply +``` + +With the remote state infrastructure deployed, you should be able to initialize the main project. +From this directory, run: + +```bash +terraform init -backend-config=./remote-state/dse-infra-dev.tfbackend +``` + +## Deploying Infrastructure + +When you are ready to deploy a new version of the infrastructure, run + +```bash +terraform apply +``` + +This will output the changes to the infrastructure that will be made, and prompt you for confirmation. + + + +## Requirements + +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >= 1.0 | +| [aws](#requirement\_aws) | 4.56.0 | +| [random](#requirement\_random) | 3.4.3 | + +## Providers + +| Name | Version | +|------|---------| +| [aws](#provider\_aws) | 4.56.0 | +| [random](#provider\_random) | 3.4.3 | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [aws_batch_compute_environment.default](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/batch_compute_environment) | resource | +| [aws_batch_job_definition.default](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/batch_job_definition) | resource | +| [aws_batch_job_queue.default](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/batch_job_queue) | resource | +| [aws_ecr_repository.default](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/ecr_repository) | resource | +| [aws_eip.this](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/eip) | resource | +| [aws_iam_policy.batch_submit_policy](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_policy) | resource | +| [aws_iam_policy.default_ecr_policy](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_policy) | resource | +| [aws_iam_policy.mwaa](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_policy) | resource | +| [aws_iam_policy.s3_scratch_policy](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_policy) | resource | +| [aws_iam_role.aws_batch_service_role](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role) | resource | +| [aws_iam_role.batch_job_role](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role) | resource | +| [aws_iam_role.ecs_task_execution_role](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role) | resource | +| [aws_iam_role.mwaa](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role) | resource | +| [aws_iam_role_policy_attachment.aws_batch_service_role](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role_policy_attachment) | resource | +| [aws_iam_role_policy_attachment.ecs_task_execution_role_policy](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role_policy_attachment) | resource | +| [aws_iam_role_policy_attachment.mwaa_batch_submit_role](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role_policy_attachment) | resource | +| [aws_iam_role_policy_attachment.mwaa_execution_role](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role_policy_attachment) | resource | +| [aws_iam_role_policy_attachment.s3_scratch_policy_role_attachment](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_role_policy_attachment) | resource | +| [aws_iam_user.cd_bot](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_user) | resource | +| [aws_iam_user_policy_attachment.batch_cd_bot_policy_attachment](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_user_policy_attachment) | resource | +| [aws_iam_user_policy_attachment.ecr_cd_bot_policy_attachment](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/iam_user_policy_attachment) | resource | +| [aws_internet_gateway.this](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/internet_gateway) | resource | +| [aws_mwaa_environment.this](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/mwaa_environment) | resource | +| [aws_nat_gateway.this](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/nat_gateway) | resource | +| [aws_route_table.private](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/route_table) | resource | +| [aws_route_table.public](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/route_table) | resource | +| [aws_route_table_association.private](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/route_table_association) | resource | +| [aws_route_table_association.public](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/route_table_association) | resource | +| [aws_s3_bucket.mwaa](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/s3_bucket) | resource | +| [aws_s3_bucket.scratch](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/s3_bucket) | resource | +| [aws_s3_bucket_public_access_block.mwaa](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/s3_bucket_public_access_block) | resource | +| [aws_s3_bucket_versioning.mwaa](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/s3_bucket_versioning) | resource | +| [aws_security_group.batch](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/security_group) | resource | +| [aws_security_group.mwaa](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/security_group) | resource | +| [aws_subnet.private](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/subnet) | resource | +| [aws_subnet.public](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/subnet) | resource | +| [aws_vpc.this](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/resources/vpc) | resource | +| [random_id.private_subnet](https://registry.terraform.io/providers/hashicorp/random/3.4.3/docs/resources/id) | resource | +| [random_id.public_subnet](https://registry.terraform.io/providers/hashicorp/random/3.4.3/docs/resources/id) | resource | +| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/availability_zones) | data source | +| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/caller_identity) | data source | +| [aws_iam_policy_document.assume](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/iam_policy_document) | data source | +| [aws_iam_policy_document.assume_role_policy](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/iam_policy_document) | data source | +| [aws_iam_policy_document.aws_batch_service_policy](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/iam_policy_document) | data source | +| [aws_iam_policy_document.batch_submit_policy_document](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/iam_policy_document) | data source | +| [aws_iam_policy_document.default_ecr_policy_document](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/iam_policy_document) | data source | +| [aws_iam_policy_document.mwaa](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/iam_policy_document) | data source | +| [aws_iam_policy_document.s3_scratch_policy_document](https://registry.terraform.io/providers/hashicorp/aws/4.56.0/docs/data-sources/iam_policy_document) | data source | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [environment](#input\_environment) | Deployment environment of the resource | `string` | `"dev"` | no | +| [owner](#input\_owner) | Owner of the resource | `string` | `"dse"` | no | +| [project](#input\_project) | Name of the project the resource is serving | `string` | `"infra"` | no | +| [region](#input\_region) | Region for AWS resources | `string` | `"us-west-2"` | no | + +## Outputs + +| Name | Description | +|------|-------------| +| [state](#output\_state) | Resources from terraform-state | + diff --git a/mkdocs.yml b/mkdocs.yml index c17ee25e..4511c396 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -31,3 +31,4 @@ nav: - Code Review: code-review.md - Naming Conventions: naming-conventions.md - Security Guidelines: security.md + - Cloud Resources: cloud-resources.md diff --git a/terraform/README.md b/terraform/README.md index 5a640ec6..8a6d6ab7 100644 --- a/terraform/README.md +++ b/terraform/README.md @@ -1,121 +1,6 @@ # CalData Terraform Infrastructure This Terraform project sets up AWS infrastructure for the CalData Data Services and Engineering team. -It includes: - -* An [AWS Batch](https://aws.amazon.com/batch/) environment for running arbitrary containerized jobs -* A [Managed Workflows on Apache Airflow](https://aws.amazon.com/managed-workflows-for-apache-airflow/) environment for orchestrating jobs. -* A VPC and subnets for the above -* An ECR repository for hosting Docker images storing code and libraries for jobs -* A bot user for running AWS operations in GitHub Actions -* An S3 scratch bucket - -## Architecture - -```mermaid -flowchart TD - subgraph AWS - J[GitHub CD\nbot user] - G[Artifact in S3] - subgraph VPC - subgraph Managed Airflow - K1[Scheduler] - K2[Worker] - K3[Webserver] - end - F[AWS Batch Job\n on Fargate] - end - E[AWS ECR Docker\nRepository] - end - subgraph GitHub - A[Code Repository] - end - E --> F - A -- Code quality check\n GitHub action --> A - A -- Job submission\nvia GitHub Action --> F - A -- Docker build \nGitHub Action --> E - A --> H[CalData\nadministrative\nuser] - H -- Terraform -----> AWS - K2 -- Job submission\nvia Airflow --> F - K1 <--> K2 - K3 <--> K1 - K3 <--> K2 - F --> G - J -- Bot Credentials --> A -``` - -## Setup - -### Installation - -This project requires Terraform to run. -You might use any of a number of different package managers to install it depending on your system. - -For Macs, you can use `brew`: - -```bash -brew install terraform -``` - -Anaconda users on any archictecture should be able to use `conda` or `mamba`: - -```bash -conda install -c conda-forge terraform -``` - -We also use `tflint` for linting, and `terraform-docs` to help with documentation of resources. -These can be installed in the same manner, e.g.: - -```bash -conda install -c conda-forge tflint go-terraform-docs -``` - -There are a number of pre-commit checks that run on committing as well as in CI. -To install the checks, run the following from the repository root: - -```bash -pre-commit install -``` - -You can manually run the pre-commit checks using - -```bash -pre-commit run --all-files -``` - -### Bootstrapping remote state - -When deploying a new version of your infrastrucutre, Terraform diffs the current state -against what you have specified in your infrastructure-as-code. -The current state is tracked in a JSON document, -which can be stored in any of a number of locations (including local files). - -This project stores remote state using the [S3 backend](https://developer.hashicorp.com/terraform/language/settings/backends/s3). -Before you can stand up the main infrastructure, you must first prep the remote state backend: - -```bash -cd remote-state -terraform init -terraform apply -``` - -With the remote state infrastructure deployed, you should be able to initialize the main project. -From this directory, run: - -```bash -terraform init -backend-config=./remote-state/dse-infra-dev.tfbackend -``` - -## Deploying Infrastructure - -When you are ready to deploy a new version of the infrastructure, run - -```bash -terraform apply -``` - -This will output the changes to the infrastructure that will be made, and prompt you for confirmation. - ## Requirements From 69016b0ad23f065a89d302757045e19f6895befa Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 16:41:33 -0700 Subject: [PATCH 07/15] Add learning resources to docs --- ...d-resources.md => cloud-infrastructure.md} | 0 docs/images/column-pruning.png | Bin 0 -> 100371 bytes docs/images/columnar-storage.png | Bin 0 -> 24829 bytes docs/images/initial-query.png | Bin 0 -> 105148 bytes docs/images/partition-pruning.png | Bin 0 -> 87623 bytes docs/learning/cloud-data-warehouses.md | 152 ++++++++++++++++++ docs/learning/dbt.md | 22 +++ docs/learning/git.md | 48 ++++++ mkdocs.yml | 6 +- 9 files changed, 227 insertions(+), 1 deletion(-) rename docs/{cloud-resources.md => cloud-infrastructure.md} (100%) create mode 100644 docs/images/column-pruning.png create mode 100644 docs/images/columnar-storage.png create mode 100644 docs/images/initial-query.png create mode 100644 docs/images/partition-pruning.png create mode 100644 docs/learning/cloud-data-warehouses.md create mode 100644 docs/learning/dbt.md create mode 100644 docs/learning/git.md diff --git a/docs/cloud-resources.md b/docs/cloud-infrastructure.md similarity index 100% rename from docs/cloud-resources.md rename to docs/cloud-infrastructure.md diff --git a/docs/images/column-pruning.png b/docs/images/column-pruning.png new file mode 100644 index 0000000000000000000000000000000000000000..47e28bccea5996887e0c78a0728565f5e29faee5 GIT binary patch literal 100371 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 O-*r9XE5(-_BmWnEU#JuS literal 0 HcmV?d00001 diff --git a/docs/images/columnar-storage.png b/docs/images/columnar-storage.png new file mode 100644 index 0000000000000000000000000000000000000000..6ecf59611da57db8a44e4ebc1c6fd2c560a9ea43 GIT binary patch literal 24829 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 literal 0 HcmV?d00001 diff --git a/docs/images/initial-query.png b/docs/images/initial-query.png new file mode 100644 index 0000000000000000000000000000000000000000..fdbe3bbac82bbcadf4a10a65efd40e0d20d0f89c GIT binary patch literal 105148 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 z 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 NL00uq*+bKp{{_vGd*uKC literal 0 HcmV?d00001 diff --git a/docs/images/partition-pruning.png b/docs/images/partition-pruning.png new file mode 100644 index 0000000000000000000000000000000000000000..29947c142d68dfafb0d29dc60936a0e2d6b49730 GIT binary patch literal 87623 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 unix_seconds(TIMESTAMP '2023-01-01') +AND event_timestamp <= unix_seconds(TIMESTAMP '2023-01-31') +``` + +![The query in BigQuery, indicating that it will scann 401 GB of data when run.](../images/initial-query.png "Initial query") + +Yikes! This query scans the whole 400 GB dataset. Based on Google's approximately $5/TB charge, this costs about $2, and if it were a query we were running many times a day, it could easily start costing thousands of dollars per year. + +#### Take advantage of column pruning + +You'll note that we are doing a `SELECT *` query, but if we're interested in browser usage, we really only need that column. So let's just `SELECT` that column: + +```sql +SELECT device_browser from `analytics_staging.base_ga4__events` +WHERE event_timestamp >= unix_seconds(TIMESTAMP '2023-01-01') +AND event_timestamp <= unix_seconds(TIMESTAMP '2023-01-31') +``` + +![The query in BigQuery, indicating that it will scann 3.96 GB of data when run.](../images/column-pruning.png "Column pruning") + +By just selecting the column we wanted, we avoided loading a lot of unnecessary data, and now we are only scanning ~4 GB of data, reducing the charge by 99%! + +#### Take advantage of partition pruning + +In the above query we are filtering based on the `event_timestamp` field. However, the dataset actually has two different time-like fields, and it is partitioned based on the other one! The query planner is not smart enough to know that both fields contain similar information, and it is therefore not able to infer that we don't need to scan every partition to get the data within the January time window. Let's fix that by re-working the query to use the partitioned-by `DATE` field: + +```sql +SELECT device_browser from `analytics_staging.base_ga4__events` +WHERE event_date_dt >= '2023-01-01' +AND event_date_dt <= '2023-01-31' +``` + +![The query in BigQuery, indicating that it will scan 880 MB of data when run.](../images/partition-pruning.png "Partition pruning") + +By using the field by which the table is partitioned in our filter, we reduced the data scanned by another factor of ~5 (as discussed above, this is analogous to using an index). + +## References +* [Blog post on BigQuery's strategy for data layout and storage](https://cloud.google.com/blog/topics/developers-practitioners/bigquery-explained-storage-overview) +* [BigQuery partitioning guide](https://cloud.google.com/bigquery/docs/partitioned-tables) +* Snowflake documentation on clustering and micropartitions +* BigQuery optimization guide (most tips apply more generally to CDWs) +* Snowflake documentation on query performance profiling diff --git a/docs/learning/dbt.md b/docs/learning/dbt.md new file mode 100644 index 00000000..42e4a5bb --- /dev/null +++ b/docs/learning/dbt.md @@ -0,0 +1,22 @@ +# dbt + +Many CalData projects use [dbt](https://www.getdbt.com/) +for transforming and modeling data within our cloud data warehouses. +dbt has become extremely popular over the last several years, +popularizing the position of "analytics engineering". +It has a number of features that makes it valuable for data stacks: + +* It works well with version control +* It encourages modular, reusable SQL code +* It makes it easier to track data lineage as it flows through your data warehouse +* It has a large, active community with which you can share tips and techniques + +## Learning dbt + +dbt provides a series of [free courses](https://courses.getdbt.com/collections) +for learning how to use the project: + +* [dbt Fundamentals](https://courses.getdbt.com/courses/fundamentals) +* [Jinja, Macros, and Packages](https://courses.getdbt.com/courses/jinja-macros-packages) +* [Advanced Materializations](https://courses.getdbt.com/courses/advanced-materializations) +* [Refactoring SQL for Modularity](https://courses.getdbt.com/courses/refactoring-sql-for-modularity) diff --git a/docs/learning/git.md b/docs/learning/git.md new file mode 100644 index 00000000..278dbc47 --- /dev/null +++ b/docs/learning/git.md @@ -0,0 +1,48 @@ +# Git and GitHub + +## What are git and GitHub? + +Git and GitHub occupy central positions in modern software development practices. + +Git is software that you install locally on your machine that enables source code management (SCM). +Code is organized into folder-like structures called git repositories, +which enables you to track the history of code, +safely develop features in side branches, +and collaborate with others in a distributed fashion. + +GitHub is a web platform for hosting git repositories. +It integrates tightly with local git development workflows, +and includes additional features like a code review user interface, +issue tracking, project boards, +[continuous integration/continuous delivery](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment), +and social networking. +There are a number of web platforms which have similar features and goals as GitHub +(including Bitbucket and GitLab), but GitHub is the most commonly used. + +## Learning git + +There are many high-quality resources for learning git online. Here are a few: + +* Atlassian has an excellent set of tutorials for learning git, including: + * [A conceptual overview for beginners](https://www.atlassian.com/git/tutorials/what-is-version-control) + * [How to set up a repository](https://www.atlassian.com/git/tutorials/setting-up-a-repository) + * [How to use git to collaborate with others](https://www.atlassian.com/git/tutorials/syncing) +* GitHub has a nice [cheat-sheet](https://education.github.com/git-cheat-sheet-education.pdf) for common git commands +* The [official git documentation](https://git-scm.com/doc) is not always the most user-friendly, but it has a depth of information that isn't available elsewhere + +## Learning GitHub + +In addition to the fundamentals of git, +it's also helpful to know how to use the GitHub web platform for development. +GitHub hosts an excellent set of [interactive tutorials](https://skills.github.com/) +for learning to use its various features, including: + +* [An introduction to GitHub](https://github.com/skills/introduction-to-github) +* [How to use Markdown for issues and READMEs](https://github.com/skills/communicate-using-markdown) +* [How to review pull requests](https://github.com/skills/review-pull-requests) +* [How to automate tasks and use CI/CD with GitHub actions](https://github.com/skills/hello-github-actions) + +## Git+GitHub at CalData + +On the CalData Data Services and Engineering team we make heavy use of git and GitHub for our projects, +and have our own set of [guidelines and best practices](../code-review.md) for code review. diff --git a/mkdocs.yml b/mkdocs.yml index 4511c396..8bb0562c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -31,4 +31,8 @@ nav: - Code Review: code-review.md - Naming Conventions: naming-conventions.md - Security Guidelines: security.md - - Cloud Resources: cloud-resources.md + - Cloud Infrastructure: cloud-infrastructure.md + - Learning: + - git: learning/git.md + - dbt: learning/dbt.md + - Cloud Data Warehouses: learning/cloud-data-warehouses.md From 3ebde2609cdb7b97c2ce0d43c380c04048fbd8b5 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 16:55:55 -0700 Subject: [PATCH 08/15] Add some notes on writing documentation. --- docs/code-review.md | 6 ++++-- docs/writing-documentation.md | 33 +++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 docs/writing-documentation.md diff --git a/docs/code-review.md b/docs/code-review.md index f1bf7cd7..5020de80 100644 --- a/docs/code-review.md +++ b/docs/code-review.md @@ -1,6 +1,8 @@ # Conventions for Code Review and GitHub -## The Process +This page documents the Data Services and Engineering Team's practices around GitHub-based development and code review. + +## Creating a Pull Request The process for GitHub-based development is: @@ -20,7 +22,7 @@ The process for GitHub-based development is: 1. In general, the author of a PR should not approve and merge their own pull request. 1. Delete your feature branch, it's in `main` now. -## Authoring a pull request +## Considerations when authoring a pull request #### Have Empathy diff --git a/docs/writing-documentation.md b/docs/writing-documentation.md new file mode 100644 index 00000000..ae62e21a --- /dev/null +++ b/docs/writing-documentation.md @@ -0,0 +1,33 @@ +# Writing Documentation + +Documentation for this project is built using mkdocs +and hosted using GitHub Pages. +The documentation source files are in the `docs/` directory +and are authored using markdown. + +## Local Development + +To write documentation for this project, make sure that the build tools are installed. +In a Python environment run: + +```bash +python -m pip install -r requirements-docs.txt +``` + +You should then be able to start a local server for the docs: + +```bash +mkdocs serve +``` + +Then open a web browser to [http://localhost:8000](http://localhost:8000) to view the built docs. +Any edits you make to the markdown sources should be automatically picked up, +and the page should automatically rebuild and refresh. + +## Deployment + +Deployment of the docs for this repository is done automatically upon merging to `main` +using the `docs` GitHub Action. + +Built documentation is pushed to the `gh-pages` branch of the repository, +and can be viewed by navigating to [https://cagov.github.io/data-infrastructure](https://cagov.github.io/data-infrastructure). diff --git a/mkdocs.yml b/mkdocs.yml index 8bb0562c..d5b021d7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -32,6 +32,7 @@ nav: - Naming Conventions: naming-conventions.md - Security Guidelines: security.md - Cloud Infrastructure: cloud-infrastructure.md + - Writing Documentation: writing-documentation.md - Learning: - git: learning/git.md - dbt: learning/dbt.md From 4be3698e1f44cb641cbb56795d36de8adde30bf7 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 17:10:50 -0700 Subject: [PATCH 09/15] Stub out index, improve IAM docs a bit. --- docs/index.md | 6 ++++-- docs/security.md | 12 +++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/index.md b/docs/index.md index 349a773a..4637a5f0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,3 +1,5 @@ -# Welcome to CalData DSE +# CalData Data Services and Engineering Infrastructure -Hello, world +This is the technical documentation for CalData's +Data Services and Engineering (DSE) projects. +It consists of processes, conventions, instructions, and architecture diagrams. diff --git a/docs/security.md b/docs/security.md index aa2b7201..b0b3268c 100644 --- a/docs/security.md +++ b/docs/security.md @@ -9,12 +9,13 @@ The major public clouds (AWS, GCP, Azure) all have a service for Identity and Ac This allows us to manage which users or services are able to perform actions on which resources. In general, IAM is described by: -* Users (or principals) - some person or workflow which uses IAM to access cloud resources. -* Permissions - an ability to perform some action on a resource or collection of resources. -* Policies - a group of related permissions for performing a job, which can be assigned to a role or user. -* Role - a group of policies for performing a workflow, which can be assumed by principals. +* **Users** (or principals) - some person or workflow which uses IAM to access cloud resources. Users can be assigned to **groups**. +* **Permissions** - an ability to perform some action on a resource or collection of resources. +* **Groups** - Rather than assigning permissions directly to users, it is considered good practice to instead create user **groups** with appropriate permissions, then add users to the group. This makes it easier to add and remove users while maintaining separate user personas. +* **Policies** - a group of related **permissions** for performing a job, which can be assigned to a **role** or **user**. +* **Role** - a group of policies for performing a workflow. Roles are similar to **users**, but do not have a user identity associated with them. Instead, they can be assumed by users or services to perform the relevant workflow. -Most of the work of IAM is managing users, permissions, policies, and roles to perform tasks in a secure way. +Most of the work of IAM is managing users, permissions, groups, policies, and roles to perform tasks in a secure way. ### Principle of Least-Privilege @@ -37,6 +38,7 @@ responsible for pushing code changes to production on merge. Some good practices around the use of service accounts (largely drawn from [here](https://cloud.google.com/iam/docs/best-practices-service-accounts)): + * Service accounts often have greater permissions than human users, so user permissions to impersonate these accounts should be monitored! * Don't use service accounts during development (unless testing the service account permissions). From 869a0c52d8e07045b755319ed52b562336332c6e Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 17:39:56 -0700 Subject: [PATCH 10/15] Add some links, minor clean-up --- docs/cloud-infrastructure.md | 2 +- docs/learning/cloud-data-warehouses.md | 6 +++--- docs/security.md | 2 +- docs/writing-documentation.md | 7 ++++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/cloud-infrastructure.md b/docs/cloud-infrastructure.md index c0cf713a..0bfbd4be 100644 --- a/docs/cloud-infrastructure.md +++ b/docs/cloud-infrastructure.md @@ -1,4 +1,4 @@ -# CalData Cloud Infrastructure +# Cloud Infrastructure The DSE team uses Terraform to manage cloud infrastructure. Our stack includes: diff --git a/docs/learning/cloud-data-warehouses.md b/docs/learning/cloud-data-warehouses.md index a5f12837..ea6ad783 100644 --- a/docs/learning/cloud-data-warehouses.md +++ b/docs/learning/cloud-data-warehouses.md @@ -147,6 +147,6 @@ By using the field by which the table is partitioned in our filter, we reduced t ## References * [Blog post on BigQuery's strategy for data layout and storage](https://cloud.google.com/blog/topics/developers-practitioners/bigquery-explained-storage-overview) * [BigQuery partitioning guide](https://cloud.google.com/bigquery/docs/partitioned-tables) -* Snowflake documentation on clustering and micropartitions -* BigQuery optimization guide (most tips apply more generally to CDWs) -* Snowflake documentation on query performance profiling +* [Snowflake documentation on clustering and micropartitions](https://docs.snowflake.com/en/user-guide/tables-clustering-micropartitions) +* [BigQuery optimization guide (most tips apply more generally to CDWs)](https://cloud.google.com/bigquery/docs/best-practices-performance-overview) +* [Snowflake documentation on query performance profiling](https://docs.snowflake.com/user-guide/ui-query-profile) diff --git a/docs/security.md b/docs/security.md index b0b3268c..15132bf6 100644 --- a/docs/security.md +++ b/docs/security.md @@ -1,4 +1,4 @@ -# CalData Security Conventions +# Security Guidelines This document describes security conventions for CalData's Data Services and Engineering team, especially as it relates to cloud and SaaS services. diff --git a/docs/writing-documentation.md b/docs/writing-documentation.md index ae62e21a..4b547664 100644 --- a/docs/writing-documentation.md +++ b/docs/writing-documentation.md @@ -1,9 +1,10 @@ # Writing Documentation -Documentation for this project is built using mkdocs -and hosted using GitHub Pages. +Documentation for this project is built using [mkdocs](https://www.mkdocs.org/) +with the [material theme](https://squidfunk.github.io/mkdocs-material/) +and hosted using [GitHub Pages](https://pages.github.com/). The documentation source files are in the `docs/` directory -and are authored using markdown. +and are authored using [markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax). ## Local Development From 2c2cd6e6a7991ce9b1b911741ea00046ea7c88f7 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 5 Apr 2023 17:52:36 -0700 Subject: [PATCH 11/15] Add minimal readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..84680083 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# CalData Data Services and Engineering Infrastructure + +![deploy](https://github.com/cagov/data-infrastructure/actions/workflows/deploy.yml/badge.svg?branch=main) +![docs](https://github.com/cagov/data-infrastructure/actions/workflows/docs.yml/badge.svg?branch=main) + +Documentation for this project can be found [here](https://cagov.github.io/data-infrastructure/). From 62c4dc0168ebf047e3390ad87d88f18a6b658506 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Thu, 6 Apr 2023 07:53:18 -0700 Subject: [PATCH 12/15] Move fivetran practices under the "third-party" section. --- docs/security.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/security.md b/docs/security.md index 15132bf6..ce9c8e17 100644 --- a/docs/security.md +++ b/docs/security.md @@ -72,6 +72,16 @@ GCS buckets in a project, when their application only requires access to one. AWS has a nice [user guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) for how to work with IAM, including some [best-practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html). +## Third-party SaaS Integrations + +Often a third-party software-as-a-service (SaaS) provider will require service accounts +to access resources within a cloud account. +For example, `dbt` requires [fairly expansive permissions](https://docs.getdbt.com/reference/warehouse-setups/bigquery-setup#required-permissions) +within your cloud data warehouse to create, transform, and drop data. + +Specific IAM roles needed for a SaaS product are usually documented in their setup guides. +These should be periodically reviewed by CalData and ODI IT-Ops staff to ensure they are still required. + ### Fivetran practices Fivetran's [security docs](https://fivetran.com/docs/security) which link to a deeper dive white paper are a good place to go to understand their standards and policies for connecting, replicating, and loading data from all of our data sources. @@ -97,16 +107,6 @@ Our IT team's role is **Account Billing and User Access**. This is a custom role The DSE team both manages CalData projects and onboards clients into Fivetran, and so its members have Account Administrator roles. -## Third-party SaaS Integrations - -Often a third-party software-as-a-service (SaaS) provider will require service accounts -to access resources within a cloud account. -For example, `dbt` requires [fairly expansive permissions](https://docs.getdbt.com/reference/warehouse-setups/bigquery-setup#required-permissions) -within your cloud data warehouse to create, transform, and drop data. - -Specific IAM roles needed for a SaaS product are usually documented in their setup guides. -These should be periodically reviewed by CalData and ODI IT-Ops staff to ensure they are still required. - ## IAM through infrastructure-as-code (TODO) From 4903442005124f63c65337078f0ec1e06fd3f005 Mon Sep 17 00:00:00 2001 From: britt Date: Fri, 7 Apr 2023 15:51:36 -0700 Subject: [PATCH 13/15] Update cloud-infrastructure.md small punctuation and sentence flow edits --- docs/cloud-infrastructure.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/cloud-infrastructure.md b/docs/cloud-infrastructure.md index 0bfbd4be..219824a9 100644 --- a/docs/cloud-infrastructure.md +++ b/docs/cloud-infrastructure.md @@ -4,7 +4,7 @@ The DSE team uses Terraform to manage cloud infrastructure. Our stack includes: * An [AWS Batch](https://aws.amazon.com/batch/) environment for running arbitrary containerized jobs -* A [Managed Workflows on Apache Airflow](https://aws.amazon.com/managed-workflows-for-apache-airflow/) environment for orchestrating jobs. +* A [Managed Workflows on Apache Airflow](https://aws.amazon.com/managed-workflows-for-apache-airflow/) environment for orchestrating jobs * A VPC and subnets for the above * An ECR repository for hosting Docker images storing code and libraries for jobs * A bot user for running AWS operations in GitHub Actions @@ -49,7 +49,7 @@ flowchart TD ### Installation This project requires Terraform to run. -You might use any of a number of different package managers to install it depending on your system. +You might use a different package manager to install it depending on your system. For Macs, you can use `brew`: @@ -77,7 +77,7 @@ To install the checks, run the following from the repository root: pre-commit install ``` -You can manually run the pre-commit checks using +You can manually run the pre-commit checks using: ```bash pre-commit run --all-files From 0f47d19c4e039a422e34c9a939efe2f85d7d7204 Mon Sep 17 00:00:00 2001 From: britt Date: Fri, 7 Apr 2023 16:03:29 -0700 Subject: [PATCH 14/15] Update cloud-data-warehouses.md small stylistic and punctuations edits --- docs/learning/cloud-data-warehouses.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/learning/cloud-data-warehouses.md b/docs/learning/cloud-data-warehouses.md index ea6ad783..97193e6d 100644 --- a/docs/learning/cloud-data-warehouses.md +++ b/docs/learning/cloud-data-warehouses.md @@ -19,12 +19,12 @@ By having a solid understanding of how cloud data warehouses work, you can construct fast, efficient queries and avoid surprise costs. ### Usage-based pricing -With most on-premise transactional warehouses costs scale with the number of server instances you buy and run. +With most on-premise transactional warehouses, costs scale with the number of server instances you buy and run. These servers usually are always-on and power various applications with high availability. In a traditional transactional warehouse both compute power and storage are associated with the same logical machine. Cloud data warehouses typically have a different pricing model: -they decouple storage and compute, charge based on your query usage. +they decouple storage and compute and charge based on your query usage. Google BigQuery charges based on the amount of [data your queries scan](https://cloud.google.com/bigquery/pricing). Snowflake charges based on the amount of [compute resources needed to execute your queries](https://www.snowflake.com/pricing/). There are also costs associated with data storage, but those are usually small compared to compute. @@ -40,6 +40,7 @@ This means that data for each column of a table are stored sequentially in objec [This BigQuery blog post](https://cloud.google.com/blog/topics/developers-practitioners/bigquery-admin-reference-guide-storage) goes into a bit more detail. ![On the left is data laid out in a record-oriented way, where each row's values are contiguous in memory. On the right is data laid out in a columnar way, where each column's values are contiguous in memory.](../images/columnar-storage.png "Columnar storage") + There are a number of consequences of using columnar storage: * You can read in columns separately from each other. So if your query only needs to look at one column of a several-hundred column table, it can do that without incurring the cost of loading and processing all of the other columns. @@ -49,7 +50,7 @@ There are a number of consequences of using columnar storage: In addition to columnar storage, cloud data warehouses also usually divide tables row-wise into chunks called partitions. Different warehouses choose different sizing strategies for partitions, -but they are typically from a few megabytes to a few hundred megabytes. +but they are typically from a few to a few hundred megabytes. Having separate logical partitions in a table allows the compute resources to process the partitions independently of each other in parallel. This massively parallel processing capability is a large part of what makes cloud data warehouses scalable. When designing your tables, you can often set partitioning strategies or clustering keys for the table. @@ -90,7 +91,7 @@ just to insert a single row. So rather than supporting constraints with horrible performance characteristics, cloud data warehouses just don't do it. This can be surprising to some people, since they often still include the syntax for constraints for SQL standard compatibility -(see, e.g., the Snowflake docs on [constraints](https://docs.snowflake.com/en/sql-reference/constraints-overview)). +(see the Snowflake docs on [constraints](https://docs.snowflake.com/en/sql-reference/constraints-overview)). !!! note One exception to the above is `NOT NULL` constraints, From 6c0eea6d3a914ab38c8689ff04f54d74bb9aae62 Mon Sep 17 00:00:00 2001 From: britt Date: Fri, 7 Apr 2023 16:05:17 -0700 Subject: [PATCH 15/15] Update dbt.md changed position of "analytics engineering" to practice and position of "analytics engineering" --- docs/learning/dbt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learning/dbt.md b/docs/learning/dbt.md index 42e4a5bb..a5b7ed93 100644 --- a/docs/learning/dbt.md +++ b/docs/learning/dbt.md @@ -3,7 +3,7 @@ Many CalData projects use [dbt](https://www.getdbt.com/) for transforming and modeling data within our cloud data warehouses. dbt has become extremely popular over the last several years, -popularizing the position of "analytics engineering". +popularizing the practice and position of "analytics engineering". It has a number of features that makes it valuable for data stacks: * It works well with version control