Files
homework/dsolovianov/greenplum/dsolovianov-202601142129.sql
T
Bonifatsiy d04f8702ee OS-52,53,54
2026-01-14 22:00:57 +04:00

418 lines
9.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET transaction_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- ЭТАП 1
-- 1.1 - СОЗДАНИЕ СХЕМ
CREATE SCHEMA core;
ALTER SCHEMA core OWNER TO dsolovianov;
CREATE SCHEMA dm;
ALTER SCHEMA dm OWNER TO dsolovianov;
CREATE SCHEMA raw;
ALTER SCHEMA raw OWNER TO dsolovianov;
SET default_tablespace = '';
-- 1.2 - Создание raw-таблиц
CREATE TABLE raw.courses (
id integer,
title character varying(50),
category character varying(50),
created_at character varying(50)
);
ALTER TABLE raw.courses OWNER TO dsolovianov;
CREATE TABLE raw.enrollments (
id integer,
user_id integer,
course_id integer,
enrolled_at character varying(50)
);
ALTER TABLE raw.enrollments OWNER TO dsolovianov;
CREATE TABLE raw.lesson_views (
id integer,
user_id integer,
lesson_id integer,
viewed_at character varying(50)
);
ALTER TABLE raw.lesson_views OWNER TO dsolovianov;
CREATE TABLE raw.lessons (
id integer,
course_id integer,
title character varying(50),
duration_min integer
);
ALTER TABLE raw.lessons OWNER TO dsolovianov;
CREATE TABLE raw.users (
id integer,
name character varying(50),
age integer,
email character varying(50),
registration_date character varying(50)
);
ALTER TABLE raw.users OWNER TO dsolovianov;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Этап 3. Слой Core
CREATE TABLE core.dim_course (
course_id integer NOT NULL,
title text,
category text
);
ALTER TABLE core.dim_course OWNER TO dsolovianov;
CREATE TABLE core.dim_date (
date date NOT NULL,
year integer,
month integer,
day integer,
weekday text
);
ALTER TABLE core.dim_date OWNER TO dsolovianov;
CREATE TABLE core.dim_lesson (
lesson_id integer NOT NULL,
title text,
duration_min integer,
course_id integer
);
ALTER TABLE core.dim_lesson OWNER TO dsolovianov;
CREATE TABLE core.dim_user (
user_id integer NOT NULL,
name text,
age integer,
email text,
registration_date date
);
ALTER TABLE core.dim_user OWNER TO dsolovianov;
CREATE TABLE core.enrollments (
user_id integer,
course_id integer,
enrolled_at timestamp without time zone
);
ALTER TABLE core.enrollments OWNER TO dsolovianov;
CREATE TABLE core.fact_lesson_views (
user_id integer,
lesson_id integer,
course_id integer,
viewed_at timestamp without time zone
);
ALTER TABLE core.fact_lesson_views OWNER TO dsolovianov;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COPY core.dim_course (course_id, title, category) FROM stdin;
2 Python для анализа данных programming
1 SQL для начинающих data
3 BI с нуля business
\.
COPY core.dim_date (date, year, month, day, weekday) FROM stdin;
2023-01-15 2023 1 15 Sunday
2023-01-16 2023 1 16 Monday
2023-01-21 2023 1 21 Saturday
2023-01-20 2023 1 20 Friday
2023-03-05 2023 3 5 Sunday
2023-02-01 2023 2 1 Wednesday
2023-04-02 2023 4 2 Sunday
2023-03-06 2023 3 6 Monday
2023-04-01 2023 4 1 Saturday
2023-04-03 2023 4 3 Monday
\.
--
-- TOC entry 2500 (class 0 OID 25643)
-- Dependencies: 274
-- Data for Name: dim_lesson; Type: TABLE DATA; Schema: core; Owner: dsolovianov
--
COPY core.dim_lesson (lesson_id, title, duration_min, course_id) FROM stdin;
4 Основы BI 12 3
5 Метрики и дашборды 18 3
2 JOIN 15 1
1 SELECT и FROM 10 1
3 Pandas 20 2
\.
--
-- TOC entry 2498 (class 0 OID 25627)
-- Dependencies: 272
-- Data for Name: dim_user; Type: TABLE DATA; Schema: core; Owner: dsolovianov
--
COPY core.dim_user (user_id, name, age, email, registration_date) FROM stdin;
3 Charlie 22 charlie@mail.com 2023-02-20
1 Alice 25 alice@mail.com 2023-01-10
2 Bob 30 bob@gmail.com 2023-02-05
5 Ethan 35 ethan@gmail.com 2023-03-10
4 Diana 28 diana@mail.com 2023-03-01
\.
--
-- TOC entry 2502 (class 0 OID 25872)
-- Dependencies: 276
-- Data for Name: enrollments; Type: TABLE DATA; Schema: core; Owner: dsolovianov
--
COPY core.enrollments (user_id, course_id, enrolled_at) FROM stdin;
4 3 2023-04-01 00:00:00
1 2 2023-02-01 00:00:00
2 1 2023-01-20 00:00:00
1 1 2023-01-15 00:00:00
3 2 2023-03-05 00:00:00
\.
--
-- TOC entry 2503 (class 0 OID 25885)
-- Dependencies: 277
-- Data for Name: fact_lesson_views; Type: TABLE DATA; Schema: core; Owner: dsolovianov
--
COPY core.fact_lesson_views (user_id, lesson_id, course_id, viewed_at) FROM stdin;
2 1 1 2023-01-21 09:00:00
1 2 1 2023-01-16 10:15:00
3 3 2 2023-03-06 12:00:00
1 1 1 2023-01-16 10:00:00
4 4 3 2023-04-02 10:00:00
4 5 3 2023-04-03 10:00:00
\.
--
-- TOC entry 2494 (class 0 OID 25615)
-- Dependencies: 268
-- Data for Name: courses; Type: TABLE DATA; Schema: raw; Owner: dsolovianov
--
COPY raw.courses (id, title, category, created_at) FROM stdin;
3 BI с нуля business 2023-03-01
1 SQL для начинающих data 2023-01-01
2 Python для анализа данных programming 2023-01-15
\.
--
-- TOC entry 2496 (class 0 OID 25621)
-- Dependencies: 270
-- Data for Name: enrollments; Type: TABLE DATA; Schema: raw; Owner: dsolovianov
--
COPY raw.enrollments (id, user_id, course_id, enrolled_at) FROM stdin;
1 1 1 2023-01-15
2 1 2 2023-02-01
3 2 1 2023-01-20
4 3 2 2023-03-05
5 4 3 2023-04-01
\.
--
-- TOC entry 2497 (class 0 OID 25624)
-- Dependencies: 271
-- Data for Name: lesson_views; Type: TABLE DATA; Schema: raw; Owner: dsolovianov
--
COPY raw.lesson_views (id, user_id, lesson_id, viewed_at) FROM stdin;
2 1 2 2023-01-16 10:15:00.000
1 1 1 2023-01-16 10:00:00.000
3 2 1 2023-01-21 09:00:00.000
5 4 4 2023-04-02 10:00:00.000
4 3 3 2023-03-06 12:00:00.000
6 4 5 2023-04-03 10:00:00.000
\.
--
-- TOC entry 2495 (class 0 OID 25618)
-- Dependencies: 269
-- Data for Name: lessons; Type: TABLE DATA; Schema: raw; Owner: dsolovianov
--
COPY raw.lessons (id, course_id, title, duration_min) FROM stdin;
1 1 SELECT и FROM 10
2 1 JOIN 15
3 2 Pandas 20
4 3 Основы BI 12
5 3 Метрики и дашборды 18
\.
--
-- TOC entry 2493 (class 0 OID 25612)
-- Dependencies: 267
-- Data for Name: users; Type: TABLE DATA; Schema: raw; Owner: dsolovianov
--
COPY raw.users (id, name, age, email, registration_date) FROM stdin;
1 Alice 25 alice@mail.com 2023-01-10
2 Bob 30 bob@gmail.com 2023-02-05
3 Charlie 22 charlie@mail.com 2023-02-20
5 Ethan 35 ethan@gmail.com 2023-03-10
4 Diana 28 diana@mail.com 2023-03-01
\.
--
-- TOC entry 2314 (class 2606 OID 25642)
-- Name: dim_course dim_course_pkey; Type: CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.dim_course
ADD CONSTRAINT dim_course_pkey PRIMARY KEY (course_id);
--
-- TOC entry 2318 (class 2606 OID 25663)
-- Name: dim_date dim_date_pkey; Type: CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.dim_date
ADD CONSTRAINT dim_date_pkey PRIMARY KEY (date);
--
-- TOC entry 2316 (class 2606 OID 25650)
-- Name: dim_lesson dim_lesson_pkey; Type: CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.dim_lesson
ADD CONSTRAINT dim_lesson_pkey PRIMARY KEY (lesson_id);
--
-- TOC entry 2312 (class 2606 OID 25634)
-- Name: dim_user dim_user_pkey; Type: CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.dim_user
ADD CONSTRAINT dim_user_pkey PRIMARY KEY (user_id);
--
-- TOC entry 2319 (class 2606 OID 25651)
-- Name: dim_lesson dim_lesson_course_id_fkey; Type: FK CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.dim_lesson
ADD CONSTRAINT dim_lesson_course_id_fkey FOREIGN KEY (course_id) REFERENCES core.dim_course(course_id);
--
-- TOC entry 2320 (class 2606 OID 25880)
-- Name: enrollments enrollments_course_id_fkey; Type: FK CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.enrollments
ADD CONSTRAINT enrollments_course_id_fkey FOREIGN KEY (course_id) REFERENCES core.dim_course(course_id);
--
-- TOC entry 2321 (class 2606 OID 25875)
-- Name: enrollments enrollments_user_id_fkey; Type: FK CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.enrollments
ADD CONSTRAINT enrollments_user_id_fkey FOREIGN KEY (user_id) REFERENCES core.dim_user(user_id);
--
-- TOC entry 2322 (class 2606 OID 25898)
-- Name: fact_lesson_views fact_lesson_views_course_id_fkey; Type: FK CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.fact_lesson_views
ADD CONSTRAINT fact_lesson_views_course_id_fkey FOREIGN KEY (course_id) REFERENCES core.dim_course(course_id);
--
-- TOC entry 2323 (class 2606 OID 25893)
-- Name: fact_lesson_views fact_lesson_views_lesson_id_fkey; Type: FK CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.fact_lesson_views
ADD CONSTRAINT fact_lesson_views_lesson_id_fkey FOREIGN KEY (lesson_id) REFERENCES core.dim_lesson(lesson_id);
--
-- TOC entry 2324 (class 2606 OID 25888)
-- Name: fact_lesson_views fact_lesson_views_user_id_fkey; Type: FK CONSTRAINT; Schema: core; Owner: dsolovianov
--
ALTER TABLE ONLY core.fact_lesson_views
ADD CONSTRAINT fact_lesson_views_user_id_fkey FOREIGN KEY (user_id) REFERENCES core.dim_user(user_id);
-- Completed on 2026-01-14 21:29:24
--
-- PostgreSQL database dump complete
--