Lindorm コンピューティングエンジンを使用すると、カラムストアデータとワイドテーブルデータに対して SQL クエリを実行できます。このガイドでは、リソースグループを作成し、それに接続して、最初の SQL ステートメントを実行する方法を説明します。
ワークロードに適したリソースグループタイプを選択してください。
| リソースグループタイプ | インターフェイス | 最適な用途 |
|---|---|---|
| [OLAP] | MySQL 互換 SQL | インタラクティブクエリ、高同時実行分析、低レイテンシーの応答 |
| [ETL] | Spark SQL (サーバーレス) | バッチ変換、複雑な計算、低頻度またはオフラインのジョブ |
前提条件
開始する前に、次のことを確認してください。
LindormTable がアクティブ化されていること。詳細については、「インスタンスの作成」をご参照ください。
Lindorm コンピューティングエンジンがアクティブ化されていること。詳細については、「サービスの有効化」をご参照ください。
クライアント IP アドレスが Lindorm ホワイトリストに追加されていること。詳細については、「ホワイトリストの設定」をご参照ください。
OLAP リソースグループの使用
オンライン分析処理 (OLAP) リソースグループは、MySQL 互換のインターフェイスを提供します。作成後、高同時実行・低レイテンシーの分析クエリのために専用のコンピューティングノードが割り当てられます。
ステップ1:OLAP リソースグループの作成
Lindorm コンソールにログインします。 左上隅でインスタンスのリージョンを選択します。 [インスタンス] ページで、インスタンス ID をクリックするか、[操作] 列の [インスタンス詳細の表示] をクリックします。
[インスタンス詳細] ページで、[設定] セクションに移動し、[コンピューティングエンジン] 列の [リソースグループ] をクリックします。

[リソースグループの詳細] ページで [リソースグループの作成] をクリックし、次のパラメーターを設定します。
パラメーター 説明 [リソースグループタイプ] [OLAP]**[OLAP]** を選択します。 [リソースグループ名] 小文字と数字のみ。最大 63 文字。例: cg0[ノード仕様] コンピューティングノードの仕様を選択します。 [ジョブあたりのワーカーノード数] ジョブあたりのワーカーノード数です。有効値:[4, 1024]。デフォルト: 4[OK] をクリックします。
リソースグループの作成には約 20 分かかります。
[リソースグループの詳細] ページで、[ステータスと説明] の下にステータスが [実行中] と表示されるまで待ちます。 リソースグループ名にカーソルを合わせ、その Virtual Private Cloud (VPC) 内部エンドポイントを取得します:
jdbc:mysql://ld-bp1dv48fk0yg0****-olap-proxy-ldps.lindorm.aliyuncs.com:9030MySQL クライアントの設定を行い、LindormTable のユーザー名とパスワードを使用して OLAP リソースグループに接続します。
mysql -hld-bp1dv48fk0yg0****-olap-proxy-ldps.lindorm.aliyuncs.com -P9030 -uroot -p
ステップ2:データへのアクセス
OLAP リソースグループは、2 つのカタログを使用してデータソースを識別します。
| カタログ | データソース | デフォルト |
|---|---|---|
lindorm_columnar | カラムストア (Iceberg 互換のデータレイク) | はい — MySQL 経由で接続すると自動的に選択されます |
lindorm_table | ワイドテーブル (LindormTable) | いいえ — SET CATALOG lindorm_table; で明示的に切り替えます |
カラムストアデータへのアクセス
カラムストアは、カラムナストレージ上に構築されたデータレイクであり、Iceberg エコシステムと互換性があります。データは Lindorm インスタンスのファイルエンジンに保存されます。
lindorm_columnar カタログはデフォルトで選択されています。明示的に切り替えるには、次を実行します。
SET CATALOG lindorm_columnar;以下の手順では、データベースを作成し、データを書き込み、サンプルクエリを実行します。
データベースを作成して使用します。
-- データベースを作成します。 CREATE DATABASE olapdemo; -- データベースを使用します。 USE olapdemo;テーブルを作成してデータを書き込みます。
-- テーブルを作成します。 CREATE TABLE test (id INT, name STRING) ENGINE = iceberg; -- データを挿入します。 INSERT INTO test VALUES (0, 'Jay'), (1, 'Edison');データをクエリします。例1 — 条件によるフィルタリング:
SELECT id, name FROM test WHERE id != 0;結果:
+------+--------+ | id | name | +------+--------+ | 1 | Edison | +------+--------+例2 — 集計:
SELECT count(distinct name) FROM test;結果:
+----------------------+ | count(DISTINCT name) | +----------------------+ | 2 | +----------------------+例3 — 結合:
SELECT * FROM (SELECT id, name FROM test WHERE id != 0) t0 JOIN (SELECT id, name FROM test WHERE id != 2) t1 ON t0.id = t1.id;結果:
+------+--------+------+--------+ | id | name | id | name | +------+--------+------+--------+ | 1 | Edison | 1 | Edison | +------+--------+------+--------+クリーンアップします。
DROP TABLE test; DROP DATABASE olapdemo;
ワイドテーブルデータへのアクセス
OLAP リソースグループは、専用のコンピューティングノードを使用して LindormTable データをクエリできます。読み取り操作のみサポートされています。OLAP リソースグループ経由でテーブルを作成したり、LindormTable にデータを書き込んだりすることはできません。
クエリを実行する前に、ワイドテーブルカタログに切り替えます。
SET CATALOG lindorm_table;すでにワイドテーブルがある場合は、クエリの手順に進んでください。そうでない場合は、LindormTable への接続を行い、サンプルテーブルを作成します。
-- データベースを作成します。
CREATE DATABASE test;
-- データベースを使用します。
USE test;
-- テーブルを作成し、2 つの行を挿入します。
CREATE TABLE tb (id varchar, name varchar, address varchar, primary key(id, name));
UPSERT INTO tb (id, name, address) VALUES ('001', 'Jack', 'hz');
UPSERT INTO tb (id, name, address) VALUES ('002', 'Edison', 'bj');OLAP リソースグループに接続している MySQL コマンドラインインターフェイス (CLI) で、次の手順を実行します。
データソースを切り替え、データベースを選択します。
-- ワイドテーブルカタログに切り替えます。 SET CATALOG lindorm_table; -- test データベースを使用します。 USE test;ワイドテーブルデータをクエリします。例1 — 行の取得:
SELECT * FROM tb LIMIT 5;結果:
+------+--------+---------+ | id | name | address | +------+--------+---------+ | 001 | Jack | hz | | 002 | Edison | bj | +------+--------+---------+例2 — 行のカウント:
SELECT count(*) FROM tb;結果:
+----------+ | count(*) | +----------+ | 2 | +----------+
ETL リソースグループの使用
抽出、変換、ロード (ETL) リソースグループは、サーバーレスの Spark SQL インターフェイスを提供します。リソースはオンデマンドで割り当てられ、自動的に解放されます。このため、低頻度のクエリ、バッチ変換、オフラインレポートに適しています。
ステップ1:リソースグループのアクティブ化
Lindorm コンソールにログインします。 左上隅でインスタンスのリージョンを選択します。 [インスタンス] ページで、インスタンス ID をクリックするか、[操作] 列の [インスタンスの詳細を表示] をクリックします。
[インスタンス詳細] ページで、[設定] セクションに移動し、[Compute Engine] 列の [リソースグループ] をクリックします。

[リソースグループ詳細]ページで、[リソースグループの作成] をクリックし、次のパラメーターを設定します。
パラメーター 説明 [リソースグループタイプ] **[ETL]** を選択します。 [リソースグループ名] 小文字と数字のみ。最大 63 文字。例: cg0[1日あたりのリソースクォータ] リソースグループが 1 日あたりに消費できる CU 時間の最大値です (単位: CU*Hour)。デフォルト:100000。0に設定すると制限なしになります。重要この制限を超えると、ジョブは直ちに削除されます。本番ワークロードでは、予期しないジョブの終了を避けるために、これを
0に設定してください。[最大CPUコア数] リソースグループの最大 CPU コア数です。有効値:[100, 100000]。 [最大メモリ] リソースグループの最大メモリです。有効値:[400 GB, 1000000 GB]。デフォルト値はありません。 [ユーザーの承認] リソースグループへのアクセスを許可するユーザー。デフォルト: *(すべてのユーザー)。[OK] をクリックしてリソースグループを作成します。
ステップ2:環境のセットアップ
Lindorm インスタンスと同じ VPC 内の Elastic Compute Service (ECS) インスタンスで次の手順を実行してください。
Java Development Kit (JDK) 1.8 以降をインストールします。
Spark パッケージをダウンロードして解凍します。
SPARK_HOME環境変数を、パッケージを解凍したディレクトリに設定します。export SPARK_HOME=/path/to/spark/$SPARK_HOME/conf/beeline.confを編集し、次のパラメーターを設定します。パラメーター 説明 endpointLindorm コンピューティングエンジンの Java Database Connectivity (JDBC) URL です。詳細については、「エンドポイントの表示」をご参照ください。 userLindormTable のユーザー名です。 passwordLindormTable のパスワードです。 shareResource同じユーザーのセッション間でコンピューティングリソースを共有するかどうか。デフォルト: true。compute-groupETL リソースグループの名前。デフォルト: default。$SPARK_HOME/binに移動し、インタラクティブセッションを開始します。アイドル状態のセッションは 4 時間後に自動的に解放されます。実行中のジョブを監視するには、起動時の出力に表示されるクラスター URL を使用して Spark UI にアクセスしてください。
./beeline接続に成功すると、次のように表示されます。
Welcome to Lindorm Distributed Processing System (LDPS) !!! Initializing environment. It might take minutes ... Environemnt prepared. You may visit your jdbc cluster by below url: http://alb-boqak6zfns5gzx****.cn-hangzhou.alb.aliyuncsslb.com/proxy/75ce76086b61470da7046bd4c2b7**** Please note -- you are sharing this JDBC cluster between SQL sessions from the same user. The cluster will be released by auto if idle for 4 hours. You may also kill it manually by visiting above web url and clicking 'kill' in tab of 'Query Engine' lindorm-beeline>
ステップ3:データへのアクセス
以下のすべての例で、lindorm-beeline> セッションで Spark SQL を使用します。lindorm_columnar カタログはデフォルトで選択されています。データソースを切り替えるには、SET CATALOG を使用します。
カラムストアデータへのアクセス
カラムストアは、カラムナストレージ上に構築されたデータレイクであり、Iceberg エコシステムと互換性があります。データは Lindorm インスタンスのファイルエンジンに保存されます。Spark SQL を使用して、このデータの書き込みとクエリができます。
lindorm_columnar カタログはデフォルトで選択されています。明示的に切り替えるには、次を実行します。
SET CATALOG lindorm_columnar;以下の手順では、データベースを作成し、データを書き込み、サンプルクエリを実行します。
データベースを作成して使用します。
-- データベースを作成します。 CREATE DATABASE etldemo; -- データベースを使用します。 USE etldemo;テーブルを作成してデータを書き込みます。
-- テーブルを作成します。 CREATE TABLE test (id INT, name STRING); -- データを挿入します。 INSERT INTO test VALUES (0, 'Jay'), (1, 'Edison');データをクエリします。例1 — 条件によるフィルタリング:
SELECT id, name FROM test WHERE id != 0;結果:
+------+--------+ | id | name | +------+--------+ | 1 | Edison | +------+--------+例2 — 集計:
SELECT count(distinct name) FROM test;結果:
+----------------------+ | count(DISTINCT name) | +----------------------+ | 2 | +----------------------+例3 — 結合:
SELECT * FROM (SELECT id, name FROM test WHERE id != 0) t0 JOIN (SELECT id, name FROM test WHERE id != 2) t1 ON t0.id = t1.id;結果:
+------+--------+------+--------+ | id | name | id | name | +------+--------+------+--------+ | 1 | Edison | 1 | Edison | +------+--------+------+--------+クリーンアップします。
DROP TABLE test; DROP DATABASE etldemo;
ワイドテーブルデータへのアクセス
ETL リソースグループでの Spark SQL 接続では、エラスティックなコンピューティングリソースを使用して LindormTable データをクエリできます。この接続経由では、LindormTable に対して CREATE TABLE や DROP TABLE などのデータ定義言語 (DDL) ステートメントはサポートされていません。クエリと計算にのみ使用してください。
クエリを実行する前に、ワイドテーブルカタログに切り替えます。
SET CATALOG lindorm_table;すでにワイドテーブルがある場合は、クエリの手順に進んでください。そうでない場合は、LindormTable への接続を行い、サンプルテーブルを作成します。
-- データベースを作成します。
CREATE DATABASE test;
-- データベースを使用します。
USE test;
-- テーブルを作成し、2 つの行を挿入します。
CREATE TABLE tb (id varchar, name varchar, address varchar, primary key(id, name));
UPSERT INTO tb (id, name, address) VALUES ('001', 'Jack', 'hz');
UPSERT INTO tb (id, name, address) VALUES ('002', 'Edison', 'bj');lindorm-beeline セッションで、次の手順を実行します。
データソースを切り替え、データベースを選択します。
-- ワイドテーブルカタログに切り替えます。 SET CATALOG lindorm_table; -- test データベースを使用します。 USE test;ワイドテーブルデータをクエリします。例1 — 行の取得:
SELECT * FROM tb LIMIT 5;結果:
+------+--------+---------+ | id | name | address | +------+--------+---------+ | 001 | Jack | hz | | 002 | Edison | bj | +------+--------+---------+例2 — 行のカウント:
SELECT count(*) FROM tb;結果:
+-----------+ | count(1) | +-----------+ | 2 | +-----------+
次のステップ
エンドポイントの表示 — リソースグループの JDBC URL と接続詳細を確認します
Spark UI — ETL リソースグループで実行中の Spark ジョブを監視します