How to Interoperate PolarDB-X with Big Data and Other Systems

実践チュートリアル:PolarDB-X とビッグデータおよびその他のシステムとの連携方法

はじめに:PolarDB-X は、ユーザーがインストールやデプロイ、さまざまなカーネル機能を体験できる無料の実験環境を提供しています。また、無料実験に加え、PolarDB-X 分散データベースの使い方を学ぶ無料ビデオコースも用意されています。
本実験では、PolarDB-X + Canal + ClickHouse を使用したリアルタイム分析システムの構築方法をガイドします。

準備
前回のレクチャーの内容に従って PolarDB-X がビルドおよびデプロイされており、PolarDB-X データベースに正常に接続できる状態であることを前提とします。

実践チュートリアル:PolarDB-X のインストールとデプロイを素早く行う方法

Canal のデプロイ
Canal は、MySQL Binlog の増分サブスクリプションを取得するための一般的なツールです。詳細については、Canal のドキュメントを参照してください。また、Canal は Docker イメージを提供しています。詳細については、Canal Docker イメージのドキュメントを参照してください。

(1) 以下のコマンドを実行して、スクリプトをダウンロードします。

wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh
(2) 以下のコマンドを実行して、送信先名が test のキューを構築します。

注意:none_loopback_host_ip を、クラウドプロダクトリソースリストにある ECS の Elastic IP に変更する必要があります。localhost や 127.0.0.1 は使用しないでください。


-e canal.instance.gtidon=false
ClickHouse のデプロイ
ClickHouse は分析システムです。詳細については、ClickHouse の公式ドキュメントを参照してください。ClickHouse は Docker イメージを提供しています。詳細については、ClickHouse Docker イメージのドキュメントを参照してください。

以下のコマンドを実行して、ClickHouse をデプロイします。

docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -p 8123:8123 yandex/clickhouse-server
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 ステートメントを実行して、テストテーブルを作成します。

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 ステートメントを実行して、テストテーブルを作成します。

Create Table test(id INT(32),name CHAR(20)) Engine = MergeTree() Order By id;
(10) exit を入力して、データベースからログアウトします。

Canal Client を実行して増分データを消費・配信
上記の手順により、PolarDB-X、Canal Server、ClickHouse の 3 つのコンテナを準備し、ソース側 (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 から ClickHouse への配信用コードファイル 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) のデータ変更を確認できます。
実験ページで、

アイコンをクリックして新しいターミナルウィンドウを作成します。
a8.png

(5) 新しいターミナルウィンドウで、以下のコマンドを実行して PolarDB-X データベースにログインします。

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456
(6) 以下の SQL ステートメントを実行して、データベース testdb を使用します。

USE testdb;
(7) 以下の SQL ステートメントを実行して、データを 1 件挿入します。

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) が配信されたデータを正常に受信したことが確認できます。

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.