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) が配信されたデータを正常に受信したことが確認できます。
はじめに: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
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
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
