Data Integration — Kettle | Веб-сервис без шуму и пыли

2 мин.

Всем кетловодам доброго дня.
Продолжаем серию статей про kettle. Сегодня мы рассмотрим как быстро поднять веб-сервис. Без лишних предисловий давайте нырнём в гущу событий. Как известно, а кому не известно, мы сейчас расскажем, о том что для веб-сервиса необходим веб-сервер. Разработчики позаботились о нас и предоставили нам его в прямо на борту kettle pdi. Собственно это файлы Carte.bat и carte.sh в зависимости от операционной системы Windows и linux соответственно.


What is Carte?


Carte is a simple web server that allows you to execute transformations and jobs remotely.  It does so by accepting XML (using a small servlet) that contains the transformation to execute and the execution configuration.  It also allows you to remotely monitor, start and stop the transformations and jobs that run on the Carte server.
A server that is running Carte is called a Slave Server in the Pentaho Data Integration terminology.


Если говорить вкратце, выше написано примерно следующее: «Сarte — это простой веб-сервер, который предназначен для запуска работ и трансформаций.» Это пока ещё не совсем то, что нам нужно по теме статьи. Работу с сервером и его основное предназначение, мы обсудим в следующих статья. Сейчас нам достаточно его просто запустить.

Для запуска, как гласить документация, нам необходимо всего лишь запустить файл carte c параметрами.

carte.sh 127.0.0.1 8081
carte.bat 127.0.0.1 8081

Мы будем рассматривать вариант под windows, не судите строго. 🙂

Запуск веб-сервера

  1. Запускаем Carte.bat
    cd C:\data-integration7
    Сarte.bat 127.0.0.1 8081
    

    Получаем что-то вроде:

    Запущенный веб-сервер Carte

    Рис.1 — Запущенный веб-сервер Carte

  2. Проверяем состояние сервера:
    Стандартная авторизация веб-сервера Carte

    Рис.2 — Стандартная авторизация веб-сервера Carte

    Как вы могли заметить, вам нужно перейти в браузере по адресу http://127.0.0.1:8081/kettle/status/ и затем ввести логин и пароль. Пароль и логин по умолчанию cluster/cluster. Для того, что бы использовать свой логин и пароль, вам нужно будет сконфигурировать сервер чуть-чуть по лучше и запускать его с этой конфигурацией. Об этом детально написано в документации. Мы это рассматривать не будем, в данной статье мы просто делаем обзор возможностей, а не пишем tutorial.

  3. Вот мы и попадаем на главную страницу, со статусом:

    Страница с состоянием сервера carte

    Рис.3 — Страница с состоянием сервера carte

Создаём трансформацию

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

Трансформация расположена непосредственно в корне data-integration (C:\data-integration7\). Настоятельно рекомендую в рабочих вариантах создавать отдельные места для хранения скриптов. В общем виде сама трансформация выглядит — зачитать-вывести:

Общи вид трансформации

Рис. 4 — Общи вид трансформации.

Ключевым моментов в трансформации является настройка шага «JSON Output». Обратите внимание на его настройку:

Настройка шага JSON Output

Рис. 5 — Настройка шага JSON Output

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

Проверяем работу веб-сервиса

Ну и наконец давайте запустим уже и получим наши данные. Для этого необходимо в браузере ввести следующий адрес:

http://cluster:cluster@127.0.0.1:8081/kettle/executeTrans/?trans=wst.ktr
http://127.0.0.1:8081/kettle/executeTrans/?trans=wst.ktr

Получаем:

Результат в виде JSON

Рис.6 — Результат в виде JSON

Собственно всё, трансформация отработала, мы получили результат её работы, быстро и без шума.


Пример как обычно по ссылке: webService


Data Integration — Kettle | Веб-сервис без шуму и пыли: 5 комментариев

  1. Alex

    Добрый день. А можно прокомментировать как исправить вывод кириллицы в UTF8. А то результат у меня получился странным:
    {«data»:[{«sheet_3″:»-«,»sheet_2″:»-«,»sheet_1″:»-«,»record_name»:»01″,»field_name»:»?????????? ?????? (??????)»}

  2. Alex

    Мой пример — в вашем примере поменял латинское название на русское и попытался вывести через Carte. В результате все русские символы превратились в ??????????????

  3. Alex

    Образец из вашего примера
    {«data»:[{«zip»:13520,»firstname»:»fsj-firstname»,»birthdate»:»1954\/02\/07″,»city»:»?????»,»street»:»amrb-street»,»name»:»jwcdf-name»,»stateCode»:»AK»,»id»:1,»state»:»ALASKA»,»housenr»:145}

    А хочется понять как я смогу передать текст в русской кодировке?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.