Настройка ETL процессов обновления информации

В этом уроке я продемонстрирую, как ведется проектирование ETL процесса с нуля и до полного завершения в PDI (Pentaho Data Integration). Этот процесс не очень быстрый: все уместилось в два часа. Это очень долго для одного урока, но я решил оставить видео таким, как я его записал. На это есть ряд причин:

  1. На первый взгляд 2 часа - это  много, однако ETL процессы разрабатываются в компаниях в течение нескольких месяцев.
  2. Все будет разрабатываться, тестироваться на ваших глазах.
  3. Так как видео смогут осилить немногие, поэтому разделение на несколько уроков не принесет пользы. Куда лучше взять готовую схему и обратиться к той части видео, где возникли вопросы. Видео будет как пример разработки ETL процесса.

Главное вам добиться того, чтобы проект заработал. Вот и сам проект, который разработали в видео. (Загрузка/Download)

Рекомендую просматривать видео на Youtube (ссылка http://youtu.be/XMb8dtlHKME)

План видео /Video plan (ссылка на youtub http://youtu.be/XMb8dtlHKME)
00:05 Цели и задачи / Goals and Objectives
01:29 Как запустить ETL проект (если вы его скачали с сайта) / How to run the ETL project (if you downloaded it from the website).
06:22 Обзор ETL / Overview ETL (ru).
24:04 Разработка/Designing
25:05 Проектирование главного элемента "Job". / Designing the main element "Job".
28:48 Проектирование элемента "Job" для обновления таблицы измерений. / Designing element "Job" to update the table of dimensions.
28:13 Создание элементов "transformation" для обновления таблиц измерений. / Creating elements "transformation“ to update the dimension tables.
29:50 “Insert / Update”.
39:53 “Dimension lookup/update”
47:35 Разработка элемента "Job" загрузки таблицы фактов / Designing the "Job" load the fact table.
48:37 Установка данных в переменные. / Set data into variable.
51:37 Параметризация загрузки данных из таблицы фактов. / Preparing data for load in the fact table (use variable).
01:01:36 Выбор ключа для фильтрации таблицы фактов из OLTP таблицы. / Selection key to filter the fact table from OLTP table.
01:08:12 Фильтрация входной таблицы фактов. / Filtering of the input fact table.
01:10:02 Загрузка кандидата таблицы фактов в WH. / Loading of the candidate fact table in WH.
01:14:19 Вставка данных в контрольное измерение. / Inserting data into control dimension.
01:16:54 Вставка данных в таблицу фактов через SQL запрос. / Insert data into the fact table through a SQL query.
01:31:15 Финальное тестирование и доработка процесса. / Final testing and refinement process.

В уроке использовались следующие приемы:

  1. Работа со скриптами “Execute SQL script” в PDI. Здесь рассмотрим, как задается параметризация SQL запроса.
  2. Работа с обновлением таблиц измерений (“Insert / Update”, “Dimension lookup/update”).
  3. Установка и использование переменных в работе (“Set Variables”).
  4. Использование трансформаций и заданий.
  5. Фильтрация таблицы фактов при помощи “Database lookup”.
  6. Работа с таблицами в Mysql (MySQLWorkbench) и составление запросов.
  7. Исправление ошибок при обновлении таблиц: устранение ошибок несоответствия типов.
  8. Вставка таблицы фактов средствами “SQL”
  9. и другие.

Ссылки по теме:

  1. Часть 3. Установка Pentaho и PDI (видео)
  2. Часть 5. Разработка WH (видео)
  3. Часть 5. Организация хранилища данных (WareHouse)
  4. Часть 6. Развертывание системы WH через PDI (видео)
  5. Create DI Solutions http://www.pentaho.com
  6. Michel Jansen. Building data warehouses using open source technologies
  7. Matt Casters, Roland Bouman, Jos van Dongen: Pentaho® Kettle Solutions: Building Open Source ETL Solutions with Pentaho Data Integration.  Wiley Publishing, Inc.
  8. Getting Started with Pentaho Data Integration http://www.pentaho.com
  9. Latest Pentaho Data Integration (aka Kettle) Documentation http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation
  10. Data Integration - Kettle http://community.pentaho.com/projects/data-integration/
  11. A Basic Mondrian Cube: Using Multi-Level Dimensions http://type-exit.org/adventures-with-open-source-bi/2010/07/a-basic-mondrian-cube-using-multi-level-dimensions/
  12. A Basic Mondrian Cube: Introducing the Star Schema http://type-exit.org/adventures-with-open-source-bi/2010/07/a-basic-mondrian-cube-introducing-the-star-schema/
  13. ADVENTURES WITH OPEN SOURCE BI http://type-exit.org/adventures-with-open-source-bi/2010/06/run-kettle-job-for-each-row/
  14. Using Variables in Kettle http://wiki.pentaho.com/display/COM/Using+Variables+in+Kettle
  15. Pentaho Data Integration (a.k.a. Kettle) and Database Sharding http://www.bluefiredatasolutions.com/blog/2011/01/pentaho-data-integration-and-database-sharding/
  16. Мини руководство по ETL Kettle на русском языке. (Хотя очень кривое) http://wiki.pentaho.com/display/EAIru/Pentaho+Data+Integration+%28Kettle%29+Tutorial+%28ru%29
  17. Execute SQL script http://wiki.pentaho.com/display/EAI/Execute+SQL+script
  18. Insert - Update http://wiki.pentaho.com/display/EAI/Insert+-+Update
  19. Dimension Lookup-Update http://wiki.pentaho.com/display/EAI/Dimension+Lookup-Update
  20. Set Variable http://wiki.pentaho.com/display/EAI/Set+Variable
  21. Database lookup http://wiki.pentaho.com/display/EAI/Database+lookup
  22. Порядок разработки ETL-процессов http://www.olap.ru/basic/etl.asp