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