この体験では、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 -AODPプロキシ経由でデータベースにアクセス
[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 ステートメントを使用してデータベースを作成します。
例:
データベース
test_dbを作成し、文字セットをutf8mb4に指定して、読み書き属性を設定します。obclient> CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4 READ WRITE;データベース
test_dbを使用します。obclient> USE test_db;列存テーブルを作成します。
CREATE TABLE ステートメントを使用して、データベース内に新しいテーブルを作成します。
例:
データベース
test_db内に列存テーブルtest_tbl1を作成します。obclient> CREATE TABLE test_tbl1 ( place VARCHAR(500), latitude VARCHAR(50), longitude VARCHAR(50), country VARCHAR(1000), continent VARCHAR(100), magnitude DECIMAL(3, 1) ) WITH COLUMN GROUP(each column);
ステップ3:URL外部テーブルのインポート
説明
本ドキュメントでは、Kaggle のサンプルデータセット(earthquake_dataset.csv)を使用して説明します。
外部データソースを準備します。
Kaggle から earthquake_dataset.csv ファイルをダウンロードします。
earthquake_dataset.csv ファイルをOBServerノードが配置されているマシンにコピーします。
scp earthquake_dataset.csv admin@10.10.10.1:/home/admin/test_data
インポートファイルのパスを設定します。
注意
セキュリティ上の理由から、システム変数
secure_file_privを設定する際は、ローカルUnix Socket接続を介してデータベースに接続し、このグローバル変数を変更するSQLステートメントを実行する必要があります。詳細については、secure_file_priv を参照してください。以下のコマンドを実行して、OBServerノードが配置されているマシンにログインします。
ssh admin@10.10.10.1以下のコマンドを実行し、ローカルUnix Socket接続を介してテナント
mysql001に接続します。obclient -S /home/admin/oceanbase/run/sql.sock -uroot@mysql001 -p******以下のSQLコマンドを実行し、ファイルが配置されているディレクトリを
/に設定します。これは制限がなく、任意のパスにアクセスできることを意味します。SET GLOBAL secure_file_priv = "/";
データベースに再接続します。
例:
obclient -h127.0.0.1 -P2881 -utest_user001@mysql001 -p****** -Aデータベース
test_dbに切り替えます。obclient> USE test_db;外部データをプレビューします。
URL外部テーブル を使用してCSVファイルを直接クエリし、データをプレビューできます。
例:
URL外部テーブルを使用してCSVファイルを直接クエリし、データをプレビューします。
obclient> SELECT * FROM FILES ( LOCATION = '/home/admin/test_data', FORMAT = ( TYPE = 'CSV' FIELD_DELIMITER = ',' FIELD_OPTIONALLY_ENCLOSED_BY ='"' SKIP_HEADER = 1), PATTERN = 'earthquake_dataset.csv' ) LIMIT 10;返される結果は以下のとおりです:
+-------------------+----------+----------+---------------+----------------+------+ | c1 | c2 | c3 | c4 | c5 | c6 | +-------------------+----------+----------+---------------+----------------+------+ |Bamako | 12.6354 | -8.0023 | Mali | Africa | 4.7 |Niamey | 13.513 | 2.1151 | Niger | Africa | 5.7 |Southern Chile | -39.8234 | -73.0691 | Chile | South America | 4.9 |Freetown | 8.4815 | -13.2315 | Sierra Leone | Africa | 4.8 |Bamako | 12.6422 | -7.999 | Mali | Africa | 5.3 |Fort-de-France | 14.6132 | -61.06 | Martinique | North America | 5.7 |Santiago | -33.4463 | -70.6682 | Chile | South America | 4.8 |East African Rift | -1.2921 | 36.8219 | Kenya | Africa | 4.6 |Manila | 13.4165 | 122.5589 | Philippines | Asia | 5.1 |San Salvador | 13.6943 | -89.2216 | El Salvador | North America | 5.7 +-------------------+----------+----------+---------------+----------------+------+ 10 rows in setINSERT INTOステートメントを使用して、データをテーブルtest_tbl1にインポートします。obclient> INSERT INTO test_tbl1 SELECT * FROM ( SELECT * FROM FILES ( LOCATION = '/home/admin/test_data', FORMAT = ( TYPE = 'CSV' FIELD_DELIMITER = ',' FIELD_OPTIONALLY_ENCLOSED_BY ='"' SKIP_HEADER = 1), PATTERN = 'earthquake_dataset.csv' ) );返される結果は以下のとおりです:
Query OK, 1265 rows affected Records: 1265 Duplicates: 0 Warnings: 0
ステップ4:クエリ分析
特定の
placeの状況をクエリします。obclient> SELECT * FROM test_tbl1 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各
continentの地震回数を集計します。obclient> SELECT continent, count(*) FROM test_tbl1 GROUP BY continent;返される結果は以下のとおりです:
+----------------+----------+ | continent | count(*) | +----------------+----------+ | Africa | 580 | | South America | 90 | | North America | 190 | | Asia | 155 | | Oceania | 45 | | Europe | 135 | | Antarctica | 70 | +----------------+----------+ 7 rows in set