Data Engineering

PostgreSQL - āļāļēāļĢāļ”āļđāđāļĨāļĢāļ°āļšāļš

āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļē, āļāļēāļĢāļ—āļģ replication, āļāļēāļĢāļ—āļģāļ”āļąāļŠāļ™āļĩ (B-tree, GIN, GiST, BRIN), VACUUM, EXPLAIN ANALYZE, āļŠāđˆāļ§āļ™āļ‚āļĒāļēāļĒ, āļāļēāļĢāļŠāļģāļĢāļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

20 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

āđ„āļŸāļĨāđŒāļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļē PostgreSQL āđƒāļ”āļ—āļĩāđˆāļĄāļĩāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļŦāļĨāļąāļāđ€āļŠāđˆāļ™ shared_buffers āđāļĨāļ° work_mem?

āļ„āļģāļ•āļ­āļš

āđ„āļŸāļĨāđŒ postgresql.conf āļĄāļĩāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ PostgreSQL āļŦāļĨāļąāļ āļĢāļ§āļĄāļ–āļķāļ‡āļāļēāļĢāļˆāļąāļ”āļŠāļĢāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģ (shared_buffers, work_mem), āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­, āļāļēāļĢāļšāļąāļ™āļ—āļķāļ āđāļĨāļ°āļāļēāļĢāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđ„āļŸāļĨāđŒāļ™āļĩāđ‰āļ–āļđāļāļ­āđˆāļēāļ™āđ€āļĄāļ·āđˆāļ­āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđāļĨāļ°āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļšāļēāļ‡āļ•āļąāļ§āļ•āđ‰āļ­āļ‡āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļŦāļĄāđˆāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļĩāļœāļĨ

2

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒ PostgreSQL āđƒāļ”āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āļˆāļģāļ™āļ§āļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļ—āļĩāđˆāđƒāļŠāđ‰āļĢāđˆāļ§āļĄāļāļąāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđāļ„āļŠāļ‚āđ‰āļ­āļĄāļđāļĨ?

āļ„āļģāļ•āļ­āļš

shared_buffers āļāļģāļŦāļ™āļ”āļˆāļģāļ™āļ§āļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļ—āļĩāđˆ PostgreSQL āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđāļ„āļŠāļ‚āđ‰āļ­āļĄāļđāļĨ āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ™āļĩāđ‰āļŠāļģāļ„āļąāļāļ•āđˆāļ­āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļāļģāļŦāļ™āļ”āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ buffer pool āļ—āļĩāđˆāđƒāļŠāđ‰āļĢāđˆāļ§āļĄāļāļąāļ™āđƒāļ™āļ—āļļāļāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ āļ„āļģāđāļ™āļ°āļ™āļģāļ—āļąāđˆāļ§āđ„āļ›āļ„āļ·āļ­āļ•āļąāđ‰āļ‡āļ„āđˆāļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡ 25% āļ–āļķāļ‡ 40% āļ‚āļ­āļ‡ RAM āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļŠāļģāļŦāļĢāļąāļšāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ—āļĩāđˆāđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļš PostgreSQL āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°

3

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļŦāļĨāļąāļāļĢāļ°āļŦāļ§āđˆāļēāļ‡ streaming replication āđāļĨāļ° logical replication āđƒāļ™ PostgreSQL āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Streaming replication āļŠāđˆāļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ—āļĩāđˆāļĢāļ°āļ”āļąāļš WAL (Write-Ahead Log) āđƒāļ™āļĢāļđāļ›āđāļšāļšāđ„āļšāļ™āļēāļĢāļĩ āļŠāļĢāđ‰āļēāļ‡āļŠāļģāđ€āļ™āļēāļ—āļĩāđˆāđāļ™āđˆāļ™āļ­āļ™āļ‚āļ­āļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĨāļąāļ Logical replication āļ–āļ­āļ”āļĢāļŦāļąāļŠāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđ€āļ›āđ‡āļ™āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ SQL āđ€āļŠāļīāļ‡āļ•āļĢāļĢāļāļ° āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļāļēāļĢ replicate āļ•āļēāļĢāļēāļ‡āļ—āļĩāđˆāđ€āļ‰āļžāļēāļ°āđ€āļˆāļēāļ°āļˆāļ‡āđāļĨāļ°āđāļ›āļĨāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢ replication āđ„āļ”āđ‰ Logical replication āđƒāļŦāđ‰āļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āļĄāļēāļāļāļ§āđˆāļēāđāļ•āđˆāļĄāļĩ overhead āļŠāļđāļ‡āļāļ§āđˆāļēāđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ

4

āļ›āļĢāļ°āđ€āļ āļ—āļ”āļąāļŠāļ™āļĩ PostgreSQL āđƒāļ”āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāļ—āļĩāđˆāļŠāļļāļ”āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ„āđ‰āļ™āļŦāļē full-text āđāļĨāļ°āļ„āļ­āļĨāļąāļĄāļ™āđŒ JSONB?

5

āđƒāļ™āļāļĢāļ“āļĩāđƒāļ”āļ—āļĩāđˆāļ”āļąāļŠāļ™āļĩ BRIN (Block Range Index) āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđ€āļ›āđ‡āļ™āļžāļīāđ€āļĻāļĐ?

+17 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Engineering āļ­āļ·āđˆāļ™āđ†

Linux & Shell - āļžāļ·āđ‰āļ™āļāļēāļ™

Junior
20 āļ„āļģāļ–āļēāļĄ

Git & GitHub - āļžāļ·āđ‰āļ™āļāļēāļ™

Junior
20 āļ„āļģāļ–āļēāļĄ

Python āļ‚āļąāđ‰āļ™āļŠāļđāļ‡āļŠāļģāļŦāļĢāļąāļš Data Engineering

Junior
25 āļ„āļģāļ–āļēāļĄ

Docker - āļžāļ·āđ‰āļ™āļāļēāļ™

Junior
25 āļ„āļģāļ–āļēāļĄ

Google Cloud Platform - āļžāļ·āđ‰āļ™āļāļēāļ™

Junior
20 āļ„āļģāļ–āļēāļĄ

CI/CD āđāļĨāļ°āļ„āļļāļ“āļ āļēāļžāđ‚āļ„āđ‰āļ”

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Docker Compose

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

FastAPI - Data API

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

SQL āļ‚āļąāđ‰āļ™āļŠāļđāļ‡āļŠāļģāļŦāļĢāļąāļš Data Engineering

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Data Lake - āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđāļĨāļ°āļāļēāļĢāļ™āļģāđ€āļ‚āđ‰āļēāļ‚āđ‰āļ­āļĄāļđāļĨ

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

BigQuery āļŠāļģāļŦāļĢāļąāļš Data Engineering

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Data Modeling āļŠāļģāļŦāļĢāļąāļš Data Engineering

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Fivetran & Airbyte - āļāļēāļĢāļ™āļģāđ€āļ‚āđ‰āļēāļ‚āđ‰āļ­āļĄāļđāļĨ

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

dbt - āļžāļ·āđ‰āļ™āļāļēāļ™

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Apache Airflow - āļžāļ·āđ‰āļ™āļāļēāļ™

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Kubernetes - āļžāļ·āđ‰āļ™āļāļēāļ™

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

dbt - āļŸāļĩāđ€āļˆāļ­āļĢāđŒāļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Senior
20 āļ„āļģāļ–āļēāļĄ

āļĢāļđāļ›āđāļšāļš ETL / ELT / ETLT

Senior
20 āļ„āļģāļ–āļēāļĄ

Apache Airflow - āļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Senior
20 āļ„āļģāļ–āļēāļĄ

Airflow + dbt - āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ Pipeline

Senior
20 āļ„āļģāļ–āļēāļĄ

PySpark - āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ

Senior
20 āļ„āļģāļ–āļēāļĄ

Google Pub/Sub - āļāļēāļĢāļŠāļ•āļĢāļĩāļĄāļ‚āđ‰āļ­āļĄāļđāļĨ

Senior
20 āļ„āļģāļ–āļēāļĄ

Apache Beam & Dataflow

Senior
20 āļ„āļģāļ–āļēāļĄ

Kubernetes - Production āđāļĨāļ° Scaling

Senior
20 āļ„āļģāļ–āļēāļĄ

Terraform - Infrastructure as Code

Senior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ NoSQL

Senior
20 āļ„āļģāļ–āļēāļĄ

Data Architecture āļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆ

Senior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļĄāļ­āļ™āļīāđ€āļ•āļ­āļĢāđŒāđāļĨāļ°āļāļēāļĢāļŠāļąāļ‡āđ€āļāļ•āļāļēāļĢāļ“āđŒ

Senior
20 āļ„āļģāļ–āļēāļĄ

IAM āđāļĨāļ°āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

Senior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Data Engineering āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ