Всем кетловодам доброго дня.
Продолжаем серию статей про 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, не судите строго. 🙂
Запуск веб-сервера
- Запускаем Carte.bat
cd C:\data-integration7 Сarte.bat 127.0.0.1 8081
Получаем что-то вроде:
- Проверяем состояние сервера:
Как вы могли заметить, вам нужно перейти в браузере по адресу http://127.0.0.1:8081/kettle/status/ и затем ввести логин и пароль. Пароль и логин по умолчанию cluster/cluster. Для того, что бы использовать свой логин и пароль, вам нужно будет сконфигурировать сервер чуть-чуть по лучше и запускать его с этой конфигурацией. Об этом детально написано в документации. Мы это рассматривать не будем, в данной статье мы просто делаем обзор возможностей, а не пишем tutorial.
- Вот мы и попадаем на главную страницу, со статусом:
Создаём трансформацию
Я стал ленив и описывать её детально уже не очень хочется. Я просто оставлю её тут и опишу только ключевые моменты.
Трансформация расположена непосредственно в корне data-integration (C:\data-integration7\). Настоятельно рекомендую в рабочих вариантах создавать отдельные места для хранения скриптов. В общем виде сама трансформация выглядит — зачитать-вывести:
Ключевым моментов в трансформации является настройка шага «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
Получаем:
Собственно всё, трансформация отработала, мы получили результат её работы, быстро и без шума.
Пример как обычно по ссылке: webService
Спасибо! Полезная информация..
Добрый день. А можно прокомментировать как исправить вывод кириллицы в UTF8. А то результат у меня получился странным:
{«data»:[{«sheet_3″:»-«,»sheet_2″:»-«,»sheet_1″:»-«,»record_name»:»01″,»field_name»:»?????????? ?????? (??????)»}
Добрый день. Можете прислать ваш пример?
Мой пример — в вашем примере поменял латинское название на русское и попытался вывести через Carte. В результате все русские символы превратились в ??????????????
Образец из вашего примера
{«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}
А хочется понять как я смогу передать текст в русской кодировке?