阿裡雲體驗有獎:如何將 PolarDB-X 與大數據等系統互通

来源:https://www.cnblogs.com/bainana/archive/2022/06/28/16419710.html
-Advertisement-
Play Games

體驗簡介 場景將提供一臺配置了CentOS 8.5操作系統的ECS實例(雲伺服器)。通過本教程的操作帶您體驗如何將PolarDB-X通過Canal與ClickHouse進行互通,搭建一個實時分析系統。點擊前往 實驗準備 1. 創建實驗資源 開始實驗之前,您需要先創建ECS實例資源。 在實驗室頁面,單 ...


體驗簡介

場景將提供一臺配置了CentOS 8.5操作系統的ECS實例(雲伺服器)。通過本教程的操作帶您體驗如何將PolarDB-X通過Canal與ClickHouse進行互通,搭建一個實時分析系統。點擊前往

實驗準備

1. 創建實驗資源

開始實驗之前,您需要先創建ECS實例資源。

  1. 在實驗室頁面,單擊創建資源

  2. (可選)在實驗室頁面左側導航欄中,單擊雲產品資源列表,可查看本次實驗資源相關信息(例如IP地址、用戶信息等)。

說明 :資源創建過程需要1~3分鐘。

2. 安裝PolarDB-X

本步驟將指導您如何安裝PolarDB-X。

  1. 安裝並啟動Docekr。

(1) 執行如下命令,安裝Docker。

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

(2) 執行如下命令,啟動Docker。

systemctl start docker
  1. 執行如下命令,安裝PolarDB-X。
docker run -d --name some-polardb-x -p 8527:8527 polardbx/polardb-x:2.1.0

3. 登錄PolarDB-X資料庫

本步驟將指導您如何登錄PolarDB-X資料庫。

PolarDB-X支持通過MySQL Client命令行、第三方客戶端以及符合MySQL交互協議的第三方程式代碼進行連接。本實驗場景主要介紹如何通過MySQL Client命令行連接到PolarDB-X資料庫。

  1. 執行如下命令,安裝MySQL。
yum install mysql -y
  1. 執行如下命令,查看MySQL版本號。
mysql -V

返回結果如下,表示您已成功安裝MySQL。

  1. 執行如下命令,登錄PolarDB-X資料庫。

說明:

  • 本實驗場景中的PolarDB-X資料庫用戶名和密碼已預設,請您使用下方命令登錄即可。

  • 如遇到mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0報錯,請您稍等一分鐘,重新執行登錄命令即可。

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

返回結果如下,表示您已成功登錄PolarDB-X資料庫。

  1. 輸入exit退出資料庫。

4. 搭建實時分析系統

本步驟將指導您如何使用PolarDB-X+Canal+ClickHouse搭建實時分析系統。

  1. 部署Canal。

Canal是一款流行的MySQL Binlog增量訂閱工具,詳情請參見Canal說明文檔。Canal提供了Docker鏡像,詳情請參見Canal Docker鏡像文檔

(1) 執行如下命令,下載腳本。

wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh

(2) 執行如下命令,構建一個destination name為test的隊列。

註意 :您需要將none_loopback_host_ip修改為雲產品資源列表中的ECS的彈性IP,請勿使用localhost或127.0.0.1。

sh run.sh -e canal.auto.scan=false \
-e canal.destinations=test \
-e canal.instance.master.address=none_loopback_host_ip:8527 \
-e canal.instance.dbUsername=polardbx_root \
-e canal.instance.dbPassword=123456 \
-e canal.instance.connectionCharset=UTF-8 \
-e canal.instance.tsdb.enable=true \
-e canal.instance.gtidon=false
  1. 部署ClickHouse。

ClickHouse是一款分析系統,詳情請參見ClickHouse官方文檔。ClickHouse提供了Docker鏡像,詳情請參見ClickHouseDocker鏡像文檔

執行如下命令,部署ClickHouse。

docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -p 8123:8123 yandex/clickhouse-server
  1. 在PolarDB-X和ClickHouse中創建測試庫和表。

(1) 執行如下命令,登錄PolarDB-X資料庫。

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

(2) 執行如下SQL語句,創建資料庫testdb。

CREATE DATABASE testdb;

(3) 執行如下SQL語句,使用資料庫testdb。

USE testdb;

(4) 執行如下SQL語句,創建test表。

CREATE TABLE test(
id INT(11) AUTO_INCREMENT PRIMARY KEY,
name CHAR(20) not null );

(5) 輸入exit退出資料庫。

(6) 執行如下命令,登錄ClickHouse資料庫。

docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server

(7) 執行如下SQL語句,創建資料庫testdb。

CREATE DATABASE testdb;

(8) 執行如下SQL語句,使用資料庫testdb。

USE testdb;

(9) 執行如下SQL語句,創建test表。

Create Table test(id INT(32),name CHAR(20)) Engine = MergeTree() Order By id;

(10) 輸入exit退出資料庫。

  1. 運行Canal Client消費並投遞增量變更。

經過以上步驟,您已經準備好了PolarDB-X、Canal Server和ClickHouse三個容器,並且在源端(PolarDB-X)和目標端(ClickHouse)建好了測試用的資料庫和表。接下來我們通過Canal Client消費Canal Server獲取的增量數據,並將源端DML中的Insert事件投遞到ClickHouse中。

(1) 執行如下命令,使用yum安裝JDK 1.8。

yum -y install java-1.8.0-openjdk*

(2) 執行如下命令,下載polardb-x-to-clickhouse-canal-client.jar投遞代碼文件。

wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/polardb-x-to-clickhouse-canal-client.jar

(3) 執行如下命令,運行polardb-x-to-clickhouse-canal-client.jar代碼文件。

java -jar polardb-x-to-clickhouse-canal-client.jar

註意:請勿中斷投遞代碼文件,否則會造成投遞失敗。

(4) 投遞鏈路已成功打通,接下來您可以在源端(PolarDB-X)執行INSERT語句,並觀察目標端(ClickHouse)中的數據變化。

在實驗頁面,單擊右上角的圖標,創建新的終端視窗。

(5) 在新的終端視窗中,執行如下命令,登錄PolarDB-X資料庫。

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

(6) 執行如下SQL語句,使用資料庫testdb。

USE testdb;

(7) 執行如下SQL語句,插入一條數據。

INSERT INTO test(name) values("polardb-x"), ("is"), ("awsome");

(8) 輸入exit退出資料庫。

(9) 執行如下命令,登錄ClickHouse資料庫。

docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server

(10) 執行如下SQL語句,使用資料庫testdb。

USE testdb;

(11) 執行如下SQL語句,查詢test表

SELECT * FROM test;

返回結果如下,您可以看到目標端(ClickHouse)接收到投遞過來的數據。

5. 瞭解更多

恭喜完成


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ubuntu和centos的區別: 包管理工具不一樣 centos:rpm、yum/dnf ubuntu:dpkg、apt 網路管理不一樣 源碼安裝ubuntu和cengtos步驟一樣。 二進位安裝: 官方已經編譯成二進位程式了,在做好一些環境配置後可以直接使用 ubuntu的linux版本屬於de ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 我的ubuntu系統是安裝在 VMware 虛擬機中的,兩者之間經常要互傳文件,下麵介紹4種常用的互傳文件方法。 1. 共用文件夾方式互傳 在虛擬機中需要開啟共用文件夾的功能。首先虛擬機中的ubuntu要求是已經開機了的狀態,然後進行設置:虛擬機 ...
  • 目前 中文網中對於 MacOS 下安裝 PHP 教程比較老,並且我個人感覺很難看懂。我在安裝 PHP 過程中遇到了很多網路中沒有出現過的問題,特此環境配置過程記錄如下。 電腦:MacBook Pro 2020 系統:MacOS Monterey 12.3 安裝 HomeBrew HomeBrew 是 ...
  • 一.前言 CentOS(Community ENTerprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由於出自同樣的源代碼,因此有些要求高度穩定性的伺服器以CentOS替代商業版 ...
  • 做Java開發的朋友都知道,每次開機啟動一堆的軟體和工具,包括未寫完的文檔,是非常花時間的,加上一桌面的快捷方式,往往不是那麼容易直接找到。windows的自動更新往往在凌晨自動啟動,導致很多軟體被異常關閉,另外該服務往往有大量駐留程式或有大量磁碟IO讓本就不富裕的性能大幅下降!,因此本次記錄如何關 ...
  • 原文鏈接:數據資產為王,解析企業數字化轉型與數據資產管理的關係 視頻回顧:點擊這裡 課件獲取:點擊這裡 一、數據資產背景介紹 隨著企業數字化轉型的深入,數據體量爆炸式增長,如何控制數據生產成本、發現有價值的數據,提高數據ROI,成了企業數字化轉型中後期的關鍵任務,這也是數據資產管理的終極目標。 而在 ...
  • 介紹 作為人類,我們天生就想要即刻擁有東西。即時滿足感是一種強大的力量,當前的實時經濟反映了這一點。業務方之間的事務在實時的數字化,逐漸自動化(M2M通信、物聯網、人工智慧和機器學習)並完成。 根據Volt Active Data的​​等待心理調查​​,當被問及“實時意味著什麼”時,超過70%的受訪 ...
  • 今天日誌出現異常,一步一步debug發現SQL語句返回值出錯,進一步發現是max()函數返回出錯。點擊跳轉解決辦法,趕時間的朋友可以去獲得答案。當然我還是希望大伙看看原由。 select max(HTMBXH) from biz_mn_contract_temp; 返回值按理應該是10 ,結果返回了 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...