Руководство по началу работы для инженеров по разработке/хранилищу данных (5) Спецификации и процессы построения слоев CDM-DIM
Руководство по началу работы для инженеров по разработке/хранилищу данных (5) Спецификации и процессы построения слоев CDM-DIM

Предисловие

Основываясь на результатах и ​​основах предыдущей статьи, мы уже создали уровень введения данных ODS. Уровень ODS относительно прост в построении и не имеет множества ограничений и спецификаций. Однако общедоступный уровень данных CDM можно рассматривать как общедоступный уровень. Ранее мы также объединили уровень детализации данных DWD, уровень измерения данных DIM и уровень общедоступной сводки DWS в эту иерархическую структуру. Существует множество особенностей и вопросов, на которые необходимо обратить внимание при построении этого уровня. Конечно, он также окажет большую помощь в обслуживании и оптимизации хранилища данных в будущем. Затем в этой главе мы завершим конкретную конструкцию и проектные спецификации трех слоев DWD/DIM/DWS.

Обзор и состав МЧР

Уровень CDM, уровень общей модели данных, является базовым уровнем хранилища данных, который определяет общие структуры данных и бизнес-правила, используемые в хранилище данных. Уровень CDM обеспечивает единое представление, которое отображает различные источники данных и форматы данных в общую модель, что упрощает интеграцию и анализ данных аналитикам данных.

  • Уровень общего измерения (DIM): на основе концепции многомерного моделирования он устанавливает согласованные измерения для всего предприятия. Уменьшите риск несогласованности калибров и алгоритмов расчета данных. Таблицы на уровне общедоступных измерений часто также называются таблицами логических измерений, а измерения и логические таблицы измерений обычно соответствуют один к одному.
  • Уровень фактов общедоступной сводной детализации (DWS). Используя предметный объект анализа в качестве драйвера моделирования, на основе требований к индикаторам приложений и продуктов верхнего уровня строится таблица фактов сводного индикатора общедоступной детализации, и модель физизируется с помощью средства широких столов. Создавайте статистические индикаторы со стандартизированными названиями и единообразным калибром, предоставляйте общедоступные индикаторы для верхнего уровня, а также создайте сводные широкие таблицы и подробные таблицы фактов. Таблицы общедоступного уровня детализации сводных данных часто называются сводными логическими таблицами и используются для хранения данных производных показателей.
  • Слой детализированных фактов (DWD): принимая бизнес-процесс в качестве движущей силы моделирования и на основе характеристик каждого конкретного бизнес-процесса создается наиболее детализированная подробная таблица фактов. Объединив характеристики использования данных на предприятии, некоторые важные поля атрибутов измерений подробной таблицы фактов можно сделать соответствующим образом избыточными, то есть обработать широкую таблицу. Таблицы на детальном уровне фактов часто также называют логическими таблицами фактов.

Целью уровня CDM является создание согласованного измерения и многократно используемой подробной таблицы фактов для анализа и статистики, а также обобщение показателей общедоступной детализации, тем самым снижая риск несогласованных калибров и алгоритмов расчета данных, а также улучшая возможность повторного использования данных и эффективность запросов. В этом отношении вы можете сослаться на табличную операцию, фактически построенную блоггером на уровне CDM в общей архитектуре:

Построение слоя DIM

Уровень DIM основан на концепции размерного моделирования.,Установите уровень согласованности во всем предприятии. Размерность – это логичное понятие,Это точка зрения, с которой бизнес измеряется и наблюдается. Таблицы измерений — это физические таблицы, построенные на платформе данных на основе измерений и их атрибутов.,Примите принцип широкой конструкции стола. поэтому,Слой сводки общих измерений (DIM) сначала требует Определить размеры.

Определить размеры

При разделении предметной области и построении матрицы шины,Необходимо сочетать с анализом бизнес-процессов Определить размеры. В ходе торгов,Поставщики и тендеры — два ключевых аспекта,Они необходимы для анализа всех аспектов тендерной кампании. Постройте слой DIM этих двух измерений.,Требуются системные шаги и четкая бизнес-логика.

1. Определите потребности бизнеса и источники данных.

Параметр «Поставщик» (Dim_Supplier)

  • потребности бизнеса:Необходимость записывать и анализировать основную информацию о каждом поставщике.、Квалификация、Историческое представление и т.д.
  • Источник данных:Система управления поставщиками、Квалификация Система аутентификации、Исторические записи транзакций и т. д.

Размер ставки (Dim_Bid)

  • потребности бизнеса:Необходимо записывать и анализировать конкретную информацию по каждой заявке.、Время торгов、Количество、Поставщики и т. д.
  • Источник данных:Система управления тендерами、система управления проектами、Система оценки заявок и т.д.

2. Структура таблицы проектных размеров

После завершения определения измерения измерения можно дополнить для создания таблицы измерений. Таблица слоев DIM используется для ассоциации измерений, и соответствующая информация об измерении должна быть получена через первичный ключ. В этом сценарии база данных типа KV более эффективна. К распространенным базам данных типа K-V относятся Redis и HBase. Данные Redis постоянно находятся в памяти, что оказывает большую нагрузку на память, поэтому для хранения многомерных данных выбран HBase.

  • Рекомендуется, чтобы информация в таблице размеров не превышала 10 миллионов штук.
  • При объединении таблиц измерений с другими таблицами рекомендуется использовать Map Join.
  • Избегайте слишком частого обновления данных таблицы измерений.

При составлении таблиц измерений необходимо учитывать следующие моменты:

1.Стабильность данных в таблицах измерений

Например, участники электронной коммерции компании A обычно не умирают, но данные участников могут быть обновлены в любое время. В этом случае вам следует рассмотреть возможность создания единого раздела для хранения всех данных. Если есть записи, которые не будут обновляться, возможно, вам придется создать исторические таблицы и ежедневные таблицы отдельно. Ежедневная таблица используется для хранения действительных на данный момент записей, чтобы предотвратить расширение объема данных таблицы; историческая таблица вставляет соответствующий раздел в соответствии со временем смерти и использует один раздел для хранения записи о смерти раздела, соответствующего время.

2.Необходимо ли разбивать таблицу измерений по вертикали

Если таблица измерений имеет большое количество неиспользуемых атрибутов или запрос становится медленным из-за слишком большого количества полей атрибутов, вам необходимо рассмотреть возможность разделения полей и создания нескольких таблиц измерений.

3.Необходимо ли разбивать таблицу измерений по горизонтали

Если между записями существуют очевидные границы, вы можете рассмотреть возможность разделения их на несколько таблиц или создания многоуровневых разделов.

Основные этапы разработки таблиц измерений следующие:

  1. Предварительный Определить размеры。 Обеспечьте постоянство размерностей.
  2. Определите основную таблицу измерений (в этом уроке используется центральная таблица фактов, звездообразная схема). Основной таблицей измерений здесь обычно является таблица уровня введения данных (ODS), которая напрямую синхронизируется с бизнес-системой. Например, s_auction — это таблица продуктов, синхронизированная с внешней системой центра продуктов, и эта таблица является основной таблицей измерений.
  3. Определите соответствующие таблицы измерений. хранилище данные — это интеграция данных исходных бизнес-систем.,Существуют корреляции между таблицами в разных бизнес-системах или в одной бизнес-системе. По результатам бизнес-обзора,Определите, какие таблицы связаны с основной таблицей измерений.,И выберите несколько таблиц для создания атрибутов измерения. Возьмем в качестве примера измерение продукта.,На основе анализа бизнес-логики,Можно получить, что товары связаны с категориями, продавцами, магазинами и другими измерениями.
  4. Определите атрибуты измерения. В основном он включает в себя два этапа. Первый этап — выбор атрибутов измерения из основной таблицы измерений или создание новых атрибутов измерения; второй этап — выбор атрибутов измерения из связанной таблицы измерений или создание новых атрибутов измерения. Взяв в качестве примера измерение продукта, выберите атрибуты измерения или сгенерируйте новые атрибуты измерения из основной таблицы измерений (s_auction), категории, продавца, магазина и других связанных таблиц измерений. Разработка атрибутов измерения требует внимания:
    • Создайте как можно больше атрибутов измерения.
    • Дайте как можно больше осмысленных словесных описаний.
    • Различать числовые атрибуты и факты.
    • Постарайтесь выделить общие атрибуты размеров.

Чтобы разработать таблицу бизнес-параметров назначения ставок, вы можете обратиться к:

Таблица измерений поставщиков (Dim_Supplier)

  • Идентификатор_поставщика
  • Имя_поставщика
  • Промышленность
  • Квалификация
  • Рейтинг
  • Страна
  • Город
  • Дата регистрации (Registration_Date)

Таблица параметров ставок (Dim_Bid)

  • Идентификатор ставки (Bid_ID)
  • Идентификатор_поставщика
  • Идентификатор проекта (Project_ID)
  • Сумма ставки (Bid_Amount)
  • Дата предложения (Bid_Date)
  • Статус ставки (Bid_Status)

3. Соглашение об именовании таблиц DIM.

Соглашение об именовании таблицы измерений общего уровня сводки измерений (DIM):

иерархия модели

Соглашение об именовании таблиц

Примеры показывают

Описание таблицы экземпляров

ods

dim_общее описание, связанное с измерением_частота обработки + метод извлечения

dim_brand_df

иерархия dwm это модели、Бренд — это общее описание таблицы размеров.、d представляет частоту обработки、f представляет метод полного извлечения

4. Создайте оператор создания таблицы SQL DLL.

Таблица измерений поставщиков (Dim_Supplier):

Язык кода:javascript
копировать
CREATE TABLE Dim_Supplier_da (
    Supplier_ID INT PRIMARY KEY,
    Supplier_Name VARCHAR(100) NOT NULL,
    Industry VARCHAR(50),
    Qualification VARCHAR(50),
    Rating VARCHAR(10),
    Country VARCHAR(50),
    City VARCHAR(50),
    Registration_Date DATE
);
​

Таблица параметров ставок (Dim_Bid):

Язык кода:javascript
копировать
CREATE TABLE Dim_Bid_da(
    Bid_ID INT PRIMARY KEY,
    Supplier_ID INT NOT NULL,
    Project_ID INT NOT NULL,
    Bid_Amount DECIMAL(10,2) NOT NULL,
    Bid_Date DATE NOT NULL,
    Bid_Status VARCHAR(20),
    FOREIGN KEY (Supplier_ID) REFERENCES Dim_Supplier(Supplier_ID),
    FOREIGN KEY (Project_ID) REFERENCES Dim_Project(Project_ID)
);

С точки зрения конкретной реализации, уровень DIM обычно потребляет данные из исходной системы с помощью инфраструктуры потоковой обработки, такой как Flink, и выполняет необходимое преобразование и обработку.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose