Apache Presto - Conector KAFKA
O Conector Kafka para Presto permite acessar dados do Apache Kafka usando Presto.
Pré-requisitos
Baixe e instale a versão mais recente dos seguintes projetos Apache.
- Apache ZooKeeper
- Apache Kafka
Inicie o ZooKeeper
Inicie o servidor ZooKeeper usando o seguinte comando.
$ bin/zookeeper-server-start.sh config/zookeeper.properties
Agora, o ZooKeeper começa a portar em 2181.
Comece Kafka
Inicie o Kafka em outro terminal usando o seguinte comando.
$ bin/kafka-server-start.sh config/server.properties
Depois que o kafka é iniciado, ele usa o número de porta 9092.
Dados TPCH
Baixar tpch-kafka
$ curl -o kafka-tpch
https://repo1.maven.org/maven2/de/softwareforge/kafka_tpch_0811/1.0/kafka_tpch_
0811-1.0.sh
Agora você baixou o carregador da central Maven usando o comando acima. Você receberá uma resposta semelhante à seguinte.
% 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
………………………..
Em seguida, torne-o executável usando o seguinte comando,
$ chmod 755 kafka-tpch
Execute tpch-kafka
Execute o programa kafka-tpch para pré-carregar uma série de tópicos com dados tpch usando o seguinte comando.
Inquerir
$ ./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'...
………………………
……………………….
Agora, as tabelas Kafka de clientes, pedidos, fornecedores, etc., são carregadas usando tpch.
Adicionar configurações de configuração
Vamos adicionar as seguintes configurações do conector Kafka no servidor 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
Na configuração acima, as tabelas Kafka são carregadas usando o programa Kafka-tpch.
Iniciar Presto CLI
Inicie o Presto CLI usando o seguinte comando,
$ ./presto --server localhost:8080 --catalog kafka —schema tpch;
Aqui “tpch" é um esquema para o conector Kafka e você receberá a seguinte resposta.
presto:tpch>
Listar tabelas
A consulta a seguir lista todas as tabelas em “tpch” esquema.
Inquerir
presto:tpch> show tables;
Resultado
Table
----------
customer
lineitem
nation
orders
part
partsupp
region
supplier
Descrever a tabela do cliente
A consulta a seguir descreve “customer” tabela.
Inquerir
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