この体験では、OceanBaseデータベースCommunity Editionのデプロイを例に説明します。この方法は、マシンが1台しかない場合に、手早く利用可能なOceanBaseデータベース環境を構築するのに適しています。デプロイされるOceanBaseデータベース環境はデータベースの基本機能を備えており、OceanBaseデータベースを理解するのに役立ちます。ただし、分散機能や高可用性は備えていないため、長期間の使用は推奨されません。
注意
本記事はOceanBaseのクイックスタートを目的としています。APの性能をさらに体験したい場合は、APシナリオにおけるパラメータ設定の推奨で推奨されている設定を使用することをお勧めします。
ステップ1:体験環境をすばやく構築する
all-in-oneインストールパッケージをダウンロードしてインストールします。
OceanBaseソフトウェアダウンロードセンターからコミュニティ版all-in-oneインストールパッケージをダウンロードし、マシンの任意のディレクトリにアップロードします。
インストールパッケージがあるディレクトリで以下のコマンドを実行して、インストールパッケージを解凍しインストールします。
[admin@test001 ~]$ tar -xzf oceanbase-all-in-one-*.tar.gz [admin@test001 ~]$ cd oceanbase-all-in-one/bin/ [admin@test001 bin]$ ./install.sh [admin@test001 bin]$ source ~/.oceanbase-all-in-one/bin/env.sh以下のコマンドを実行して、OceanBaseデータベースをすばやくデプロイします。
[admin@test001 ~]$ obd demoobd demoコマンドは、デフォルトで現在のユーザーのホームディレクトリに最小構成でOceanBaseデータベースおよび関連コンポーネント(ODP、OBAgent、Grafana、Prometheusを含む)をデプロイして起動し、デプロイ名はdemoに固定されます。説明
GrafanaまたはPrometheusをインストールする際、GrafanaまたはPrometheusのアクセスアドレスが出力されます。Alibaba Cloudなどのクラウド環境では、パブリックIPアドレスを取得できないため、プライベートネットワークのアドレスが出力される場合があります。このIPはパブリックアドレスではないため、正しいアドレスを使用する必要があります。
出力された接続コマンドを実行してデータベースに接続します。
obd demoコマンドが正常に実行されると、OBClientを使用してOceanBaseデータベースに接続するコマンドが出力されます。例は以下のとおりです。- 2881ポートでデータベースに直接接続
[admin@test001 ~]$ obclient -h127.0.0.1 -P2881 -uroot@sys -Doceanbase -A- ODPプロキシ経由でデータベースにアクセス
[admin@test001 ~]$ obclient -h127.0.0.1 -P2883 -uroot@sys -Doceanbase -A(オプション)パスワードを設定します。
obd demoコマンドでOceanBaseデータベースをすばやくデプロイした後、以下の手順を参考にdemoクラスタのパスワードを設定できます。設定ファイルを変更します。
obd cluster edit-config demo上記のコマンドを実行して設定ファイルを開いた後、設定ファイル内のoceanbase-ce(コミュニティ版)/oceanbase(エンタープライズ版)コンポーネントの下に
root_password: xxxxを追加し、追加後に保存して終了します。例:oceanbase-ce: servers: - 127.0.0.1 global: home_path: /home/admin/oceanbase-ce ... # 一部のパラメータは省略 log_disk_size: 13G root_password: ******クラスタを再起動します。
設定ファイルを変更して保存すると、obdは実行待ちの再起動コマンドを出力します。そのままコピーして実行します。例:
[admin@test001 ~]$ obd cluster edit-config demo Search param plugin and load ok Search param plugin and load ok Parameter check ok Save deploy "demo" configuration Use `obd cluster reload demo` to make changes take effect. Trace ID: 29dd12fa-3d73-11ee-91bc-00163e01cd7a If you want to view detailed obd logs, please run: obd display-trace 29dd12fa-3d73-11ee-91bc-00163e01cd7a出力からわかるように、設定ファイルの
root@sysユーザーパスワードを変更した後、obd cluster reload demoコマンドを実行してdemoクラスタを再起動する必要があります。
ステップ2:テーブルを作成する
データベースを作成します。
CREATE DATABASEステートメントを使用してデータベースを作成します。
例:データベースquickstartを作成し、文字セットをutf8mb4に指定して、読み書き属性を設定します。
obclient> CREATE DATABASE quickstart DEFAULT CHARACTER SET utf8mb4 READ WRITE; Query OK, 1 row affectedテーブルを作成します。
CREATE TABLEステートメントを使用して、データベース内に新しいテーブルを作成します。例:データベース
quickstart内にテーブルtestを作成します。obclient> USE quickstart; Database changed obclient> CREATE TABLE test (place VARCHAR(500), latitude VARCHAR(50),longitude VARCHAR(50), country VARCHAR(1000), continent VARCHAR(100), magnitude DECIMAL(3, 1)); Query OK, 0 rows affected
ステップ3:データをインポートする
本記事では、Kaggle のサンプルデータセット (earthquake_dataset.csv) を使用して説明します。
Kaggle から earthquake_dataset.csv ファイルをダウンロードします。
earthquake_dataset.csv ファイルをOBServerノードが配置されているマシンにコピーします。
scp earthquake_dataset.csv admin@10.10.10.1:/home/admin/test_dataOBServerノードが配置されているマシンにログインします。
例:
ssh admin@10.10.10.1インポートファイルのパスを設定します。
注意
セキュリティ上の理由から、システム変数 `secure_file_priv` を設定する際は、ローカルUnixソケット接続を介してデータベースに接続し、このグローバル変数を変更するSQLステートメントを実行する必要があります。詳細については、secure_file_priv を参照してください。
例:
OBServerノードが配置されているマシンにログインします。
ssh admin@10.10.10.1以下のコマンドを実行し、ローカルUnixソケット接続を介してテナント
mysql001に接続します。例:
obclient -S /home/admin/oceanbase/run/sql.sock -uroot@mysql001 -p******ファイルが配置されているディレクトリを
/に設定します。これは制限がなく、任意のパスにアクセスできることを意味します。SET GLOBAL SECURE_FILE_PRIV = "/";
データベースに再接続します。
例:
obclient -h127.0.0.1 -P2881 -utest_user001@mysql001 -p****** -ALOAD DATAステートメントを使用してデータをインポートします。例:
以下の
LOAD DATAステートメントを使用して、ファイルからデータベーステーブルにデータをロードします。ここでは以下を指定します:- ロードするファイルのパスとファイル名を
/home/admin/test_data/earthquake_dataset.csvと指定します。 - データをロードする対象テーブル名を
testと指定します。 - データファイル内のフィールド区切り文字をカンマと指定します。
- データファイル内のフィールド(文字型)を二重引用符で囲むことを指定します。
- データファイル内の行を改行文字で終端することを指定します。
- ロードするデータファイル内の列と対象テーブル内の列のマッピング関係を指定します。データファイルの最初の列は対象テーブルの
place列に、2番目の列はlatitude列に、3番目の列はlongitude列にマッピングされ、以降も同様にマッピングされます。
obclient [test]> LOAD DATA LOCAL INFILE '/home/admin/test_data/earthquake_dataset.csv' INTO TABLE test FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (place,latitude,longitude,country,continent,magnitude);- ロードするファイルのパスとファイル名を
ステップ4:クエリの分析
OBServerノードが存在するマシンにログインします。
ssh admin@10.10.10.1データベースに接続します。
例:
obclient -h127.0.0.1 -P2881 -utest_user001@mysql001 -p****** -A特定の
placeの状況を照会します。obclient [quickstart]> select * from test where place = 'Santiago'; +----------+----------+-----------+---------+----------------+-----------+ | place | latitude | longitude | country | continent | magnitude | +----------+----------+-----------+---------+----------------+-----------+ | Santiago | -33.4463 | -70.6682 | Chile | South America | 4.8 | | Santiago | -33.4521 | -70.6647 | Chile | South America | 4.5 | | Santiago | -33.4505 | -70.6717 | Chile | South America | 5.2 | | Santiago | -33.4489 | -70.6693 | Chile | South America | 5.6 | | Santiago | -33.4472 | -70.6659 | Chile | South America | 4.1 | +----------+----------+-----------+---------+----------------+-----------+ 5 rows in set各大陸の地震回数を集計します。
obclient [quickstart]> select continent,count(*) from test group by continent; +----------------+----------+ | continent | count(*) | +----------------+----------+ | South America | 90 | | Africa | 580 | | Antarctica | 70 | | North America | 190 | | Oceania | 45 | | Asia | 155 | | Europe | 135 | +----------------+----------+ 7 rows in set