Apache Presto-KAFKA 커넥터

Presto 용 Kafka 커넥터를 사용하면 Presto를 사용하여 Apache Kafka의 데이터에 액세스 할 수 있습니다.

전제 조건

다음 Apache 프로젝트의 최신 버전을 다운로드하여 설치하십시오.

  • Apache ZooKeeper
  • Apache Kafka

ZooKeeper 시작

다음 명령을 사용하여 ZooKeeper 서버를 시작하십시오.

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

이제 ZooKeeper는 2181에서 포트를 시작합니다.

Kafka 시작

다음 명령을 사용하여 다른 터미널에서 Kafka를 시작합니다.

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

kafka가 시작된 후 포트 번호 9092를 사용합니다.

TPCH 데이터

tpch-kafka 다운로드

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

이제 위의 명령을 사용하여 Maven Central에서 로더를 다운로드했습니다. 다음과 유사한 응답을 받게됩니다.

% 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 
 ………………………..

그런 다음 다음 명령을 사용하여 실행 가능하게 만듭니다.

$ chmod 755 kafka-tpch

tpch-kafka 실행

다음 명령을 사용하여 kafka-tpch 프로그램을 실행하여 tpch 데이터로 여러 주제를 미리로드합니다.

질문

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

결과

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'...
………………………
……………………….

이제 Kafka 테이블 고객, 주문, 공급 업체 등은 tpch를 사용하여로드됩니다.

구성 설정 추가

Presto 서버에 다음 Kafka 커넥터 구성 설정을 추가해 보겠습니다.

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

위 구성에서 Kafka 테이블은 Kafka-tpch 프로그램을 사용하여로드됩니다.

Presto CLI 시작

다음 명령을 사용하여 Presto CLI를 시작합니다.

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

여기 “tpch" Kafka 커넥터의 스키마이며 다음과 같은 응답을 받게됩니다.

presto:tpch>

목록 테이블

다음 쿼리는 모든 테이블을 나열합니다. “tpch” 개요.

질문

presto:tpch> show tables;

결과

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

고객 테이블 설명

다음 쿼리는 설명합니다. “customer” 표.

질문

presto:tpch> describe customer;

결과

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