国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

怎么使用 Flink 向 Apache Doris 表中寫 Bitmap 類型的數(shù)據(jù)

這篇具有很好參考價值的文章主要介紹了怎么使用 Flink 向 Apache Doris 表中寫 Bitmap 類型的數(shù)據(jù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Bitmap是一種經(jīng)典的數(shù)據(jù)結(jié)構(gòu),用于高效地對大量的二進制數(shù)據(jù)進行壓縮存儲和快速查詢。Doris支持bitmap數(shù)據(jù)類型,在Flink計算場景中,可以結(jié)合Flink doris Connector對bitmap數(shù)據(jù)做計算。

社區(qū)里很多小伙伴在是Doris Flink Connector的時候,不知道怎么寫B(tài)itmap類型的數(shù)據(jù),本文將介紹如何使用 Flink Doris Connector 如何將 bitmap 數(shù)據(jù)寫入 Doris 中。

前置準(zhǔn)備
Doris2.0.1的環(huán)境

Flink1.16,同時將 Doris Flink Connector的Jar包放在<FLINK_HOME>/lib 下面。

創(chuàng)建Doris表

CREATE TABLE `page_view_bitmap` (
`dt` int,
`page` varchar(256),
`user_id` bitmap bitmap_union
)
AGGREGATE KEY(`dt`, page)
DISTRIBUTED BY HASH(`dt`) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
)

寫入Bitmap數(shù)據(jù)
這里模擬Flink讀取MySQL數(shù)據(jù)寫入Doris,同時將user_id存儲到bitmap中。

模擬數(shù)據(jù)

創(chuàng)建MySQL表

CREATE TABLE `page_view` (
 `id` int NOT NULL,
 `dt` int,
 `page` varchar(256),
 `user_id` int,
 PRIMARY KEY (`id`)
);

#模擬數(shù)據(jù)
INSERT INTO `test`.`page_view` (`id`, `dt`, `page`, `user_id`) VALUES (1, 20230921, 'home', 1001);
INSERT INTO `test`.`page_view` (`id`, `dt`, `page`, `user_id`) VALUES (2, 20230921, 'home', 1002);
INSERT INTO `test`.`page_view` (`id`, `dt`, `page`, `user_id`) VALUES (3, 20230921, 'search', 1003);
INSERT INTO `test`.`page_view` (`id`, `dt`, `page`, `user_id`) VALUES (4, 20230922, 'mine', 1001);
INSERT INTO `test`.`page_view` (`id`, `dt`, `page`, `user_id`) VALUES (5, 20230922, 'home', 1002);
FlinkSQL寫入Bitmap
#使用JDBC讀取mysql數(shù)據(jù)
CREATE TABLE page_view (
   `dt` int,
   `page` string,
   `user_id` int
) WITH (
   'connector' = 'jdbc',
   'url' = 'jdbc:mysql://127.0.0.1:3306/test',
   'table-name' = 'page_view',
   'username' = 'root',
   'password' = '123456'
);

doris connector寫入數(shù)據(jù)

CREATE TABLE page_view_bitmap (
dt int,
page string,
user_id int
)
WITH (
 'connector' = 'doris',
 'fenodes' = '127.0.0.1:8030',
 'table.identifier' = 'test.page_view_bitmap',
 'username' = 'root',
 'password' = '',
 'sink.label-prefix' = 'doris_label1',
 'sink.properties.columns' = 'dt,page,user_id,user_id=to_bitmap(user_id)'
);

insert into page_view_bitmap select * from page_view
我們知道 Doris Flink Connector Sink 底層是基于 Doris Stream Load 來實現(xiàn)的,同樣 Stream load 在 Connector 里也是一樣適用,我們將這個參數(shù)封裝在了 :sink.properties 參數(shù)里,
這里我們可以看到上面這個例子里我們在是 With 屬性里加入了我們 Columns 參數(shù),這里我們配置了列的轉(zhuǎn)換操作,將 user_id 通過 to_bitmap 函數(shù)進行轉(zhuǎn)換,并導(dǎo)入到 Doris 表里。
查詢結(jié)果

mysql> select dt,page,bitmap_to_string(user_id) from `test`.`page_view_bitmap`;
+----------+--------+---------------------------+
| dt       | page   | bitmap_to_string(user_id) |
+----------+--------+---------------------------+
| 20230921 | home   | 1001,1002                 |
| 20230921 | search | 1003                      |
| 20230922 | home   | 1002                      |
| 20230922 | mine   | 1001                      |
+----------+--------+---------------------------+
4 rows in set (0.00 sec)

Flink DataStream
使用 DataStream API 模擬數(shù)據(jù)寫入剛才的表中。

DataStream API 對 Bitmap 的操作也是和上面 SQL 操作的方式一樣。

public static void main(String[] args) throws Exception {
       StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
       env.setParallelism(1);
       env.setRuntimeMode(RuntimeExecutionMode.BATCH);

       DorisSink.Builder<String> builder = DorisSink.builder();
       final DorisReadOptions.Builder readOptionBuilder = DorisReadOptions.builder();
       Properties properties = new Properties();
       properties.setProperty("column_separator", ",");
       properties.setProperty("format", "csv");
       properties.setProperty("columns", "dt,page,user_id,user_id=to_bitmap(user_id)");

       DorisOptions.Builder dorisBuilder = DorisOptions.builder();
       dorisBuilder.setFenodes("127.0.0.1:8030")
              .setTableIdentifier("test.page_view_bitmap")
              .setUsername("root")
              .setPassword("");
       DorisExecutionOptions.Builder executionBuilder = DorisExecutionOptions.builder();
       executionBuilder.setLabelPrefix("doris_label")
              .setStreamLoadProp(properties)
              .setDeletable(false);

       builder.setDorisReadOptions(readOptionBuilder.build())
              .setDorisExecutionOptions(executionBuilder.build())
              .setSerializer(new SimpleStringSerializer())
              .setDorisOptions(dorisBuilder.build());

       //mock data
       DataStreamSource<String> stringDataStreamSource = env.fromCollection(
               Arrays.asList("20230921,home,1003", "20230921,search,1001", "20230923,home,1001"));
       stringDataStreamSource.sinkTo(builder.build());
       env.execute("doris bitmap write");
  }

查詢結(jié)果文章來源地址http://www.zghlxwxcb.cn/news/detail-723854.html

mysql> select dt,page,bitmap_to_string(user_id) from `test`.`page_view_bitmap`;
+----------+--------+---------------------------+
| dt       | page   | bitmap_to_string(user_id) |
+----------+--------+---------------------------+
| 20230921 | home   | 1001,1002,1003            |
| 20230921 | search | 1001,1003                 |
| 20230922 | home   | 1002                      |
| 20230922 | mine   | 1001                      |
| 20230923 | home   | 1001                      |
+----------+--------+---------------------------+
5 rows in set (0.00 sec)

到了這里,關(guān)于怎么使用 Flink 向 Apache Doris 表中寫 Bitmap 類型的數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Apache Flink X Apache Doris構(gòu)建極速易用的實時數(shù)倉架構(gòu)

    Apache Flink X Apache Doris構(gòu)建極速易用的實時數(shù)倉架構(gòu)

    大家好,我叫王磊。是SelectDB 大數(shù)據(jù)研發(fā)。今天給大家?guī)淼姆窒硎恰禔pache Flink X Apache Doris構(gòu)建極速易用的實時數(shù)倉架構(gòu)》。 下面是我們的個人介紹:我是Apache Doris Contributor 和阿里云 MVP。同時著有《 圖解 Spark 大數(shù)據(jù)快速分析實戰(zhàn)》等書籍。 接下來咱們進入本次演講的正題

    2023年04月24日
    瀏覽(24)
  • Flink實時寫入Apache Doris如何保證高吞吐和低延遲

    Flink實時寫入Apache Doris如何保證高吞吐和低延遲

    隨著實時分析需求的不斷增加,數(shù)據(jù)的時效性對于企業(yè)的精細化運營越來越重要。借助海量數(shù)據(jù),實時數(shù)倉在有效挖掘有價值信息、快速獲取數(shù)據(jù)反饋、幫助企業(yè)更快決策、更好的產(chǎn)品迭代等方面發(fā)揮著不可替代的作用。 在這種情況下,Apache Doris 作為一個實時 MPP 分析數(shù)據(jù)庫脫穎

    2024年01月17日
    瀏覽(33)
  • Apache Doris 入門教程03:使用Docker或Kubernetes部署Doris

    該文檔主要介紹了如何通過 Dockerfile 來制作 Apache Doris 的運行鏡像,以便于在容器化編排工具或者快速測試過程中可迅速拉取一個 Apache Doris Image 來完成集群的創(chuàng)建。 概述? Docker 鏡像在制作前要提前準(zhǔn)備好制作機器,該機器的平臺架構(gòu)決定了制作以后的 Docker Image 適用的平臺

    2024年02月07日
    瀏覽(22)
  • Apache Doris大規(guī)模數(shù)據(jù)使用指南

    目錄 一、發(fā)展歷史 二、架構(gòu)介紹 彈性MPP架構(gòu)-極簡架構(gòu) 邏輯架構(gòu) 基本訪問架構(gòu) 三、Doris的數(shù)據(jù)分布

    2024年02月12日
    瀏覽(21)
  • 大數(shù)據(jù)Doris(十四):Doris表中的數(shù)據(jù)基本概念

    大數(shù)據(jù)Doris(十四):Doris表中的數(shù)據(jù)基本概念

    文章目錄 Doris表中的數(shù)據(jù)基本概念 一、???????Row Column

    2024年02月06日
    瀏覽(19)
  • 使用Apache Doris自動同步整個 MySQL/Oracle 數(shù)據(jù)庫進行數(shù)據(jù)分析

    使用Apache Doris自動同步整個 MySQL/Oracle 數(shù)據(jù)庫進行數(shù)據(jù)分析

    Flink-Doris-Connector 1.4.0 允許用戶一步將包含數(shù)千個表的整個數(shù)據(jù)庫(MySQL或Oracle )攝取到Apache Doris(一種實時分析數(shù)據(jù)庫)中。 通過內(nèi)置的Flink CDC,連接器可以直接將上游源的表模式和數(shù)據(jù)同步到Apache Doris,這意味著用戶不再需要編寫DataStream程序或在Doris中預(yù)先創(chuàng)建映射表。

    2024年02月09日
    瀏覽(21)
  • Redis之bitmap類型解讀

    目錄 基本介紹 基本命令? Setbit? Getbit? BITCOUNT? 應(yīng)用場景 統(tǒng)計當(dāng)日活躍用戶 用戶簽到 bitmap - Redis布隆過濾器 (應(yīng)對緩存穿透問題) 基本介紹 Redis 的位圖(bitmap)是由多個二進制位組成的數(shù)組,只有兩種狀態(tài),0和1, 數(shù)組中的每個二進制位都有與之對應(yīng)的偏移量(從 0 開始)

    2024年02月11日
    瀏覽(20)
  • 【Apache Flink】Flink DataStream API的基本使用

    【Apache Flink】Flink DataStream API的基本使用

    Flink DataStream API的基本使用 Flink DataStream API主要用于處理無界和有界數(shù)據(jù)流 。 無界數(shù)據(jù)流 是一個持續(xù)生成數(shù)據(jù)的數(shù)據(jù)源,它沒有明確的結(jié)束點,例如實時的交易數(shù)據(jù)或傳感器數(shù)據(jù)。這種類型的數(shù)據(jù)流需要使用Apache Flink的實時處理功能來連續(xù)地處理和分析。 有界數(shù)據(jù)流 是一個

    2024年02月06日
    瀏覽(26)
  • 使用 Apache Flink 開發(fā)實時 ETL

    使用 Apache Flink 開發(fā)實時 ETL

    Apache Flink 是大數(shù)據(jù)領(lǐng)域又一新興框架。它與 Spark 的不同之處在于,它是使用流式處理來模擬批量處理的,因此能夠提供亞秒級的、符合 Exactly-once 語義的實時處理能力。Flink 的使用場景之一是構(gòu)建實時的數(shù)據(jù)通道,在不同的存儲之間搬運和轉(zhuǎn)換數(shù)據(jù)。本文將介紹如何使用 F

    2024年02月05日
    瀏覽(25)
  • 怎么使用VBA查找多個工作表中相同和不相同的數(shù)據(jù)

    您可以使用VBA代碼來查找多個工作表中的相同和不相同的數(shù)據(jù)。以下是一些基本步驟: 打開Microsoft Excel,然后打開您想要查找的工作簿。 按下\\\"Alt + F11\\\"鍵打開\\\"Visual Basic for Applications\\\" (VBA) 編輯器。 在VBA編輯器中,單擊\\\"插入\\\",然后選擇\\\"模塊\\\"以創(chuàng)建一個新的模塊。 在模塊窗口

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包