Apache Presto - złącze KAFKA

Kafka Connector for Presto umożliwia dostęp do danych z Apache Kafka przy użyciu Presto.

Wymagania wstępne

Pobierz i zainstaluj najnowszą wersję następujących projektów Apache.

  • Apache ZooKeeper
  • Apache Kafka

Uruchom ZooKeeper

Uruchom serwer ZooKeeper za pomocą następującego polecenia.

$ bin/zookeeper-server-start.sh config/zookeeper.properties

Teraz ZooKeeper uruchamia port 2181.

Uruchom Kafkę

Uruchom Kafkę w innym terminalu, używając następującego polecenia.

$ bin/kafka-server-start.sh config/server.properties

Po uruchomieniu kafka używa numeru portu 9092.

Dane TPCH

Pobierz pliki tpch-kafka

$  curl -o kafka-tpch 
https://repo1.maven.org/maven2/de/softwareforge/kafka_tpch_0811/1.0/kafka_tpch_ 
0811-1.0.sh

Teraz pobrałeś moduł ładujący z centrali Maven za pomocą powyższego polecenia. Otrzymasz podobną odpowiedź, jak poniżej.

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
                                 Dload  Upload   Total   Spent    Left  Speed 
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0  
  5 21.6M    5 1279k    0     0  83898      0  0:04:30  0:00:15  0:04:15  129k
  6 21.6M    6 1407k    0     0  86656      0  0:04:21  0:00:16  0:04:05  131k  
 24 21.6M   24 5439k    0     0   124k      0  0:02:57  0:00:43  0:02:14  175k 
 24 21.6M   24 5439k    0     0   124k      0  0:02:58  0:00:43  0:02:15  160k 
 25 21.6M   25 5736k    0     0   128k      0  0:02:52  0:00:44  0:02:08  181k 
 ………………………..

Następnie uczyń go wykonywalnym za pomocą następującego polecenia,

$ chmod 755 kafka-tpch

Uruchom tpch-kafka

Uruchom program kafka-tpch, aby wstępnie załadować kilka tematów z danymi tpch, używając następującego polecenia.

Pytanie

$ ./kafka-tpch load --brokers localhost:9092 --prefix tpch. --tpch-type tiny

Wynik

2016-07-13T16:15:52.083+0530 INFO main io.airlift.log.Logging Logging 
to stderr
2016-07-13T16:15:52.124+0530 INFO main de.softwareforge.kafka.LoadCommand
Processing tables: [customer, orders, lineitem, part, partsupp, supplier,
nation, region]
2016-07-13T16:15:52.834+0530 INFO pool-1-thread-1
de.softwareforge.kafka.LoadCommand Loading table 'customer' into topic 'tpch.customer'...
2016-07-13T16:15:52.834+0530 INFO pool-1-thread-2
de.softwareforge.kafka.LoadCommand Loading table 'orders' into topic 'tpch.orders'...
2016-07-13T16:15:52.834+0530 INFO pool-1-thread-3
de.softwareforge.kafka.LoadCommand Loading table 'lineitem' into topic 'tpch.lineitem'...
2016-07-13T16:15:52.834+0530 INFO pool-1-thread-4
de.softwareforge.kafka.LoadCommand Loading table 'part' into topic 'tpch.part'...
………………………
……………………….

Teraz tablice klientów, zamówień, dostawców itp. Kafki są ładowane za pomocą tpch.

Dodaj ustawienia konfiguracji

Dodajmy następujące ustawienia konfiguracji łącznika Kafka na serwerze Presto.

connector.name = kafka  

kafka.nodes = localhost:9092  

kafka.table-names = tpch.customer,tpch.orders,tpch.lineitem,tpch.part,tpch.partsupp, 
tpch.supplier,tpch.nation,tpch.region  

kafka.hide-internal-columns = false

W powyższej konfiguracji tabele Kafki są ładowane za pomocą programu Kafka-tpch.

Uruchom Presto CLI

Uruchom Presto CLI za pomocą następującego polecenia,

$ ./presto --server localhost:8080 --catalog kafka —schema tpch;

Tutaj “tpch" jest schematem dla łącznika Kafka i otrzymasz następującą odpowiedź.

presto:tpch>

Tabele list

Następujące zapytanie wyświetla wszystkie tabele w “tpch” schemat.

Pytanie

presto:tpch> show tables;

Wynik

Table 
---------- 
 customer 
 lineitem 
 nation 
 orders
 part 
 partsupp 
 region 
 supplier

Opisz tabelę klientów

Następujące zapytanie opisuje “customer” stół.

Pytanie

presto:tpch> describe customer;

Wynik

Column           |  Type   |                   Comment 
-------------------+---------+--------------------------------------------- 
 _partition_id     | bigint  | Partition Id 
 _partition_offset | bigint  | Offset for the message within the partition 
 _segment_start    | bigint  | Segment start offset 
 _segment_end      | bigint  | Segment end offset 
 _segment_count    | bigint  | Running message count per segment 
 _key              | varchar | Key text 
 _key_corrupt      | boolean | Key data is corrupt 
 _key_length       | bigint  | Total number of key bytes 
 _message          | varchar | Message text 
 _message_corrupt  | boolean | Message data is corrupt 
 _message_length   | bigint  | Total number of message bytes