OS-52,53,54
This commit is contained in:
@@ -0,0 +1,417 @@
|
|||||||
|
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
|
||||||
|
--
|
||||||
|
|
||||||
Reference in New Issue
Block a user