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