Используя PDI, мы можем создать конвейер данных для отправки электронных писем.

Я прочитал много блогов многих авторов о создании списка адресов электронной почты, чтобы успешно создать аудиторию для ваших историй. На данный момент у меня нет списка рассылки, и я хотел бы иметь один. Мне нравится идея отправки историй нескольким получателям, и это может быть хорошим вариантом использования для нашей серии статей о конвейере данных.

На вопрос Как? Мы ответим в этой истории. Теперь есть несколько способов выполнить это действие; метод (с использованием PDI), который вы прочтете ниже, не обязательно является лучшим методом, доступным на рынке. Мы можем создать аналогичные варианты использования, например. отправка файлов журнала, отправка уведомлений, отправка отчетов о состоянии и т. д.

Если вы новичок в PDI, рекомендуется ознакомиться с приведенной ниже историей.



Истории пользователей - давайте определимся с нашим вариантом использования

Это довольно простой вариант использования, и ниже приведены наши истории о том же.

  1. Я хочу прочитать несколько файлов CSV с последним блогом и списком рассылки.
  2. Я хочу объединить эти CSV-файлы и создать единый фрейм данных.
  3. Я хочу отправить электронное письмо каждому получателю отдельно. Я хочу передать переменные подзаданиям.

Самый простой вариант использования

Входные данные

Для выполнения этого действия требуются два типа данных. Один из них - наш мастер списка рассылки. Во-вторых, нам нужен URL нашего недавнего сообщения в блоге; которые мы хотим отправить в список рассылки. Опять же, мы можем получить эту информацию с помощью службы RSS-каналов. Об этом же напишу отдельный блог.

Создание двух CSV-файлов «EmailList» и «LatestPost» с данными, указанными ниже.

Обратите внимание, это лучшие игроки в крикет, и я использовал фиктивные адреса электронной почты. Эти люди не входят в мой список рассылки.

Тестовые кейсы

Я предпочитаю определять свои тестовые примеры перед построением конвейера данных. Я очень рекомендую вам сделать то же самое.

  • Попробуйте отправить письмо самому себе
  • Перекрестная проверка содержимого еще раз и данные получателя

Шаг 1: Настройка проекта

Как и все мои предыдущие рассказы. Сначала я настроил папку проекта в соответствии с правильным соглашением об именах. Это помогает стандартизировать процесс и минимизировать кривую обучения для других разработчиков.

Здесь нам нужны папки ввода, вывода и преобразования. Мы будем создавать несколько трансформаций для различных видов деятельности.

Нам нужна указанная ниже структура. Как я уже упоминал, я предпочитаю хранить всю связанную с работой работу в одном месте «Работа»; помогает в поддержании резервных копий. (Д: \ Работа \ SendEmail).

  1. Ввод - здесь мы будем загружать наши отчеты.
  2. Вывод - сохранение нашего выходного файла.
  3. Main.kjb - здесь мы настроим и интегрируем несколько преобразований для просмотра нашего списка рассылки.
  4. ReadFile и SendEmail - в папке преобразования мы создадим эти файлы. Обратите внимание, что ReadFiles - это файл преобразования, а SendEmail - файл задания.

Шаг - 2 Чтение файлов

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

Откройте преобразование ReadFile.ktr на Spoon (настольное приложение). В этом преобразовании нам нужно прочитать входной файл.

Нам необходимо выполнить следующие шаги.

  1. Добавьте описание преобразования, щелкнув ›« Новое примечание »правой кнопкой мыши. Документация очень важна для любого языка программирования.
  2. Перетащите два плагина «Ввод текстового файла», один «Объединить строки (декартово произведение)» и «Копировать строки в результат» с вкладки преобразования на холст.
  3. Переименуйте тот же «read_email_list» (текстовый ввод 1), «read_latest_post» (текстовый ввод 1), «объединить» и «copy_result» соответственно.
  4. На шаге read_email_list найдите файл (D: \ Work \ SendEmail \ Input \ EmailList.csv) в поле Файл или каталог и на вкладке Файл в разделе Содержание, замените поле Разделитель на запятую, а не на пол запятую, а на вкладке Поля просто нажмите кнопку Получить поля.
  5. Точно так же на этапе read_latest_post найдите файл (D: \ Work \ SendEmail \ Input \ LatestPost.csv) в поле Файл или каталог и на вкладке Файл в на вкладке Контент замените поле Разделитель на запятую, а на вкладке Поля просто нажмите кнопку Получить поля.
  6. Вот и все, шаг соединения строк будет творить чудеса, не изменяя ни одного параметра. Здесь я хотел показать возможность бесшовного слияния двух файлов с помощью шага соединения строк. В случае необходимости мы также можем предоставить условия.

Мы можем протестировать этот модуль, запустив преобразование и предварительно просмотрев результат.

Шаг - 3 проходных переменных

Нам нужно передать переменные нашей дочерней задаче для отправки электронных писем одно за другим. Это потребует от нас настройки родительского файла основного задания перед настройкой дочернего файла задания SendEmail.

Передача переменных - это простой процесс в PDI. Если мы закончим преобразование с помощью «Копировать строки в результат», тогда все наши переменные будут доступны в наших следующих преобразованиях. Однако мы будем передавать переменные по-разному на уровне работы.

Нам нужно выполнить следующие шаги, чтобы передать переменные.

  1. В файле Main.kjb нам нужно перетащить «Start», «Transformation», «Job» и шаг «Success».
  2. Переименуйте шаги в соответствии с нашим соглашением об именах на «start», «read_files», «send_email» и «success».
  3. Нам нужно найти наши файлы преобразования на шагах read_files и send_email соответственно.
  4. На этапе задания send_email нам нужно установить флажок Выполнить каждую строку ввода на вкладке Параметры.
  5. На вкладке Параметры нам нужно добавить четыре параметра, а именно. FirstName, EmailAddress Title и BlogPost. Теперь все эти имена должны совпадать с полями нашего входного файла.

Теперь нам нужно получить значения в дочернем / вспомогательном задании. Ниже шаг.

Откройте файл SendEmail.kjb, дважды щелкните холст. Spoon откроет окно свойств задания. Нам нужно добавить те же поля на вкладку Параметры и здесь.

Шаг - 3 Отправка писем

Теперь мы можем настроить и отправлять индивидуальные электронные письма в наш список рассылки. Для отправки по электронной почте требуется Открытая аутентификация (OAuth). Чтобы настроить OAuth в своей учетной записи Gmail, ознакомьтесь с приведенной ниже историей - Шаг 2; Я не буду повторять весь процесс в этом сообщении.



Давайте быстро настроим наше задание SendEmail.

  1. Добавьте описание файла вакансии. Здесь мы будем использовать этот файл вакансии для отправки электронных писем.
  2. Перетащите «Start», «Mail» и «Success» из списка плагинов на вкладке дизайна.
  3. Переименуйте его в соответствии с нашим соглашением об именах, начало, электронная почта и успех соответственно.
  4. На этапе отправки электронной почты нам необходимо настроить указанные ниже свойства.
  • В поле Адрес назначения нам нужно использовать переменную $ {EmailAddress}, которая передается из нашего предыдущего преобразования и родительского задания.
  • В поле Имя и адрес отправителя нам необходимо указать имя и адрес электронной почты отправителя; то есть наша информация.
  • На вкладке Сервер нам нужно предоставить информацию OAuth для аутентификации. Это исходящий сервер, и нам нужны данные SMTP вместо IMAP.
  • На вкладке Сообщение электронной почты нам нужно установить флажок «Использовать формат HTML в теле письма», в разделе сообщения в поле Тема будет $ {Заголовок} и напишите ваше собственное сообщение для тела письма. Я использовал ниже.
Hi ${FirstName},
I have published a new blog on Medium. Here's link. 
${BlogPost}
I hope you like it. Please feel free to provide your suggestions. 
Thanks,
Shravankumar Suvarna

Посмотрите, как мы использовали переменные в нескольких полях. PDI не поддерживает использование переменных во всех полях. Главное - найти маленький синий знак доллара рядом с полями. Если он присутствует, то принимает или нет.

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

Заключение

Что ж, это был самый простой конвейер данных. Здесь идея состоит не в том, чтобы использовать этот метод для отправки блогов в список рассылки, а в том, чтобы использовать это тематическое исследование в соответствии с нашими удобствами. Мы можем построить аналогичные конвейеры для отправки файлов журналов, отчета о состоянии и т. Д. Поскольку большинство наших конвейеров будет работать на серверных машинах. Было бы неплохо включить отчет о состоянии в реальном времени из конвейеров заданий / преобразований.

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



Пожалуйста, не стесняйтесь задавать вопросы в разделе комментариев.

Увидимся в следующем посте. Счастливый ETL