Kafka源表的實現來源於自社群的kafka版本實現。
注意:本文件只適合獨享模式下使用。
Kafka需要定義的DDL如下。
create table kafka_stream(
messageKey VARBINARY,
`message` VARBINARY,
topic varchar,
`partition` int,
`offset` bigint
) with (
type =`kafka010`,
topic = `xxx`,
`group.id` = `xxx`,
bootstrap.servers = `ip:埠,ip:埠,ip:埠`
);
注意:以上表中的五個欄位順序務必保持一致。
WITH引數
通用配置
引數 |
註釋說明 |
備註 |
type |
Kafka對應版本 |
推薦使用KAFKA010 |
topic |
讀取的單個topic |
topic名稱 |
必選配置
(1)kafka08必選配置:
引數 |
註釋說明 |
備註 |
group.id |
無 |
消費組id |
zookeeper.connect |
zk連結地址 |
zk連線id |
(2)kafka09/kafka010/kafka011必選配置:
引數 |
註釋說明 |
備註 |
group.id |
無 |
消費組id |
bootstrap.servers |
kafka叢集地址 |
kafka叢集地址 |
Kafka叢集地址:
如果您的kafka是阿里雲商業版,請參考kafka商業版準備配置文件。
如果您的kafka是阿里雲公測版,請參考kafka公測版準備配置文件。
可選配置
"consumer.id","socket.timeout.ms","fetch.message.max.bytes","num.consumer.fetchers","auto.commit.enable","auto.commit.interval.ms","queued.max.message.chunks", "rebalance.max.retries","fetch.min.bytes","fetch.wait.max.ms","rebalance.backoff.ms","refresh.leader.backoff.ms","auto.offset.reset","consumer.timeout.ms","exclude.internal.topics","partition.assignment.strategy","client.id","zookeeper.session.timeout.ms","zookeeper.connection.timeout.ms","zookeeper.sync.time.ms","offsets.storage","offsets.channel.backoff.ms","offsets.channel.socket.timeout.ms","offsets.commit.max.retries","dual.commit.enabled","partition.assignment.strategy","socket.receive.buffer.bytes","fetch.min.bytes"
注意:其它可選配置項參考kafka官方文件:
Kafka09
https://kafka.apache.org/0110/documentation.html#consumerconfigs
Kafka010
https://kafka.apache.org/090/documentation.html#newconsumerconfigs
Kafka011
https://kafka.apache.org/0102/documentation.html#newconsumerconfigs
kafka版本對應關係
Type |
Kafka 版本 |
Kafka08 |
0.8.22 |
Kafka09 |
0.9.0.1 |
Kafka010 |
0.10.2.1 |
Kafka011 |
0.11.0.2 |
Kafka訊息解析
預設Kafka讀到的訊息:
messageKey varbianry,
message varbianry,
topic varchar,
partition int,
offset bigint
這樣一個五元組,如果您希望在source階段把資料parser成特定的其它格式,可以按照下面實踐進行。
引數 |
註釋說明 |
備註 |
parserUdtf |
自定義解析函式 |
用於解析從kafka讀到的訊息對映到ddl具體對應的型別 |
如何寫一個parserUdtf參見自定義表值函式(UDTF)。
自建kafka
與阿里雲Kafka訊息佇列一樣,DDL定義相同。
示例:
create table kafka_stream(
messageKey VARBINARY,
`message` VARBINARY,
topic varchar,
`partition` int,
`offset` bigint
) with (
type =`kafka011`,
topic = `kafka_01`,
`group.id` = `CID_blink`,
bootstrap.servers = `192.168.0.251:9092`
);
WITH引數
關於自建Kafka的with引數,請參考本文件Kafka建立時DDL的with引數說明。需要注意的是 bootstrap.servers
引數需要填寫自建的地址和埠號。
注意:無論是阿里雲Kafka還是自建Kafka,目前實時計算均無Tps、Rps等指標資訊。在作業上線之後,運維介面暫時不支援顯示指標資訊。
相關產品
-
實時計算
阿里雲實時計算(Alibaba Cloud Realtime Compute)是一套基於Apache Flink構建的一站式、高效能實時大資料處理平臺,廣泛適用於流式資料處理、離線資料處理、DataLake計算等多種場景。阿里雲實時計算產品徹底規避繁重的底層流式處理邏輯開發工作,助力中國企業向實時化、智慧化大資料計算升級轉型。
-
MaxCompute
大資料計算服務(MaxCompute,原名ODPS)是一種快速、完全託管的TB/PB級資料倉儲解決方案。MaxCompute向使用者提供了完善的資料匯入方案以及多種經典的分散式計算模型,能夠更快速的解決使用者海量資料計算問題,有效降低企業成本,並保障資料安全。
-
DataWorks(資料工場)
資料工場DataWorks (原大資料開發套件Data IDE) 是基
本文轉自實時計算——建立訊息佇列(Kafka)源表