Apache Presto - Conector KAFKA

Kafka Connector para Presto permite acceder a datos de Apache Kafka usando Presto.

Prerrequisitos

Descargue e instale la última versión de los siguientes proyectos de Apache.

  • Apache ZooKeeper
  • Apache Kafka

Iniciar ZooKeeper

Inicie el servidor de ZooKeeper con el siguiente comando.

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

Ahora, ZooKeeper inicia el puerto en 2181.

Iniciar Kafka

Inicie Kafka en otra terminal usando el siguiente comando.

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

Una vez que se inicia kafka, utiliza el número de puerto 9092.

Datos TPCH

Descarga tpch-kafka

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

Ahora ha descargado el cargador de Maven central usando el comando anterior. Obtendrá una respuesta similar a la siguiente.

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

Luego, hazlo ejecutable usando el siguiente comando,

$ chmod 755 kafka-tpch

Ejecute tpch-kafka

Ejecute el programa kafka-tpch para precargar una serie de temas con datos tpch utilizando el siguiente comando.

Consulta

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

Resultado

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

Ahora, las tablas de Kafka, clientes, pedidos, proveedores, etc., se cargan mediante tpch.

Agregar ajustes de configuración

Agreguemos las siguientes opciones de configuración del conector Kafka en el servidor de 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

En la configuración anterior, las tablas de Kafka se cargan mediante el programa Kafka-tpch.

Iniciar Presto CLI

Inicie Presto CLI con el siguiente comando,

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

aquí “tpch" es un esquema para el conector Kafka y recibirá una respuesta como la siguiente.

presto:tpch>

Tablas de lista

La siguiente consulta enumera todas las tablas en “tpch” esquema.

Consulta

presto:tpch> show tables;

Resultado

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

Describir la tabla de clientes

La siguiente consulta describe “customer” mesa.

Consulta

presto:tpch> describe customer;

Resultado

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