Skip to content

Commit 57bbc0c

Browse files
AUTO: Sync ScalarDB docs in Japanese to docs site repo (#1415)
Co-authored-by: josh-wong <[email protected]> Co-authored-by: Josh Wong <[email protected]>
1 parent 6357ebf commit 57bbc0c

File tree

2 files changed

+305
-457
lines changed
  • i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current

2 files changed

+305
-457
lines changed
Lines changed: 305 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,305 @@
1+
---
2+
tags:
3+
- Enterprise Option
4+
displayed_sidebar: docsJapanese
5+
---
6+
7+
# ScalarDB Analytics をはじめよう
8+
9+
import WarningLicenseKeyContact from "/src/components/ja-jp/_warning-license-key-contact.mdx";
10+
import TranslationBanner from "/src/components/_translation-ja-jp.mdx";
11+
12+
<TranslationBanner />
13+
14+
このクイックスタートガイドでは、ScalarDB Analytics をセットアップし、PostgreSQL、MySQL、Cassandra を含む異なるデータベース間でフェデレーテッドクエリを実行する方法を説明します。ScalarDB Analytics とその主要な利点の概要については、[ScalarDB 概要](../overview.mdx)および [ScalarDB 設計](../design.mdx)ページを参照してください。
15+
16+
## 何を構築するか
17+
18+
このチュートリアルでは、以下のようなサンプル電子商取引分析環境をセットアップします:
19+
20+
- 顧客データは PostgreSQL に格納
21+
- 注文データは ScalarDB を介して MySQL で管理
22+
- 明細項目の詳細は Cassandra に保存され、ScalarDB トランザクションを通じて更新
23+
24+
3つのデータベースすべてにまたがってデータを結合する分析クエリを実行し、ビジネスインサイトを得ます。ソースコードは [https://github.com/scalar-labs/scalardb-samples/tree/main/scalardb-analytics-sample](https://github.com/scalar-labs/scalardb-samples/tree/main/scalardb-analytics-sample) で入手できます。
25+
26+
## 前提条件
27+
28+
- [Docker](https://www.docker.com/get-started/) 20.10以降と [Docker Compose](https://docs.docker.com/compose/install/) V2以降
29+
30+
<WarningLicenseKeyContact product="ScalarDB Analytics" />
31+
32+
## ステップ 1: 環境をセットアップする
33+
34+
このセクションでは、ScalarDB Analytics 環境をセットアップする方法について説明します。
35+
36+
### リポジトリをクローンする
37+
38+
**ターミナル** を開き、ScalarDB サンプルリポジトリをクローンします:
39+
40+
```console
41+
git clone https://github.com/scalar-labs/scalardb-samples
42+
cd scalardb-samples/scalardb-analytics-sample
43+
```
44+
45+
### ライセンスを設定する
46+
47+
ScalarDB Analytics ライセンスを追加するには、`config/scalardb-analytics-server.properties` を開きます。次に、ライセンス設定行のコメントを外して更新し、`<YOUR_LICENSE_KEY>``<YOUR_LICENSE_CERT_PEM>` を実際のライセンス情報に置き換えます:
48+
49+
```properties
50+
# License configuration (required for production)
51+
scalar.db.analytics.server.licensing.license_key=<YOUR_LICENSE_KEY>
52+
scalar.db.analytics.server.licensing.license_check_cert_pem=<YOUR_LICENSE_CERT_PEM>
53+
```
54+
55+
## ステップ 2: サンプルデータベースを設定する
56+
57+
サンプルデータベースをセットアップするには、次のコマンドを実行します:
58+
59+
```console
60+
docker compose up -d --wait
61+
```
62+
63+
このコマンドは、以下のサービスをローカルで起動します:
64+
65+
- **ScalarDB Analytics コンポーネント:**
66+
- **ScalarDB Analytics サーバー:** すべてのデータソースのメタデータを管理し、クエリ実行のための統一インターフェースを提供します。
67+
- **サンプルデータベース:**
68+
- **PostgreSQL:** ScalarDB 管理外データベースとして使用(直接アクセス)
69+
- **Cassandra および MySQL:** ScalarDB 管理下データベースとして使用(ScalarDB のトランザクションレイヤー経由でアクセス)
70+
71+
このガイドでは、PostgreSQL は ScalarDB トランザクションによって管理されない **ScalarDB 管理外データベース** と呼ばれ、Cassandra および MySQL は ScalarDB トランザクションによって管理される **ScalarDB 管理下データベース** と呼ばれます。
72+
73+
サンプルデータは初回セットアップ時にすべてのデータベースに自動的にロードされます。セットアップが完了すると、次のテーブルが使用可能になります:
74+
75+
- PostgreSQL:
76+
- `sample_ns.customer`
77+
- ScalarDB (Cassandra):
78+
- `cassandrans.lineitem`
79+
- ScalarDB (MySQL):
80+
- `mysqlns.orders`
81+
82+
ScalarDB 内では、`cassandrans``mysqlns` がそれぞれ Cassandra と MySQL にマッピングされます。
83+
84+
列定義やデータ型を含むテーブルスキーマの詳細については、[スキーマの詳細](#スキーマの詳細)を参照してください。サンプルデータがこれらのテーブルに正常にロードされていることを確認してください。
85+
86+
## ステップ 3: ScalarDB Analytics CLI を使用してデータソースを登録する
87+
88+
分析クエリを実行する前に、データソースを ScalarDB Analytics サーバーに登録する必要があります。これは ScalarDB Analytics CLI を使用して行うことができます。
89+
90+
### カタログを作成する
91+
92+
まず、データソースを整理するための新しいカタログを作成します:
93+
94+
```console
95+
docker compose run --rm scalardb-analytics-cli catalog create --catalog sample_catalog
96+
```
97+
98+
### ScalarDB をデータソースとして登録する
99+
100+
ScalarDB が管理するデータベースを登録します:
101+
102+
```console
103+
docker compose run --rm scalardb-analytics-cli data-source register \
104+
--data-source-json /config/data-sources/scalardb.json
105+
```
106+
107+
これにより、ScalarDB が管理する Cassandra と MySQL の両方のテーブルが登録されます。
108+
109+
### PostgreSQL をデータソースとして登録する
110+
111+
PostgreSQL データベースを登録します:
112+
113+
```console
114+
docker compose run --rm scalardb-analytics-cli data-source register \
115+
--data-source-json /config/data-sources/postgres.json
116+
```
117+
118+
## ステップ 4: Spark SQL コンソールを起動する
119+
120+
Spark SQL コンソールを起動するには、次のコマンドを実行します:
121+
122+
```console
123+
docker compose run --rm spark-sql
124+
```
125+
126+
Spark SQL コンソールを起動すると、**spark-defaults.conf** の設定で ScalarDB Analytics カタログが初期化され、`sample_catalog` という名前の Spark カタログとして登録されます。
127+
128+
### 名前空間マッピング
129+
130+
設定されたデータソースの以下のテーブルは、Spark SQL テーブルにマッピングされ、異なるデータソース間でのシームレスなクエリが可能になります:
131+
132+
- PostgreSQL:
133+
- `sample_catalog.postgres.sample_ns.customer`
134+
- ScalarDB (Cassandra):
135+
- `sample_catalog.scalardb.cassandrans.lineitem`
136+
- ScalarDB (MySQL):
137+
- `sample_catalog.scalardb.mysqlns.orders`
138+
139+
## ステップ 5: 分析クエリを実行する
140+
141+
ScalarDB Analytics 環境のセットアップが完了したので、Spark SQL コンソールを使用してサンプルデータに対して分析クエリを実行できます。
142+
143+
### クエリ 1: 出荷パフォーマンスと返品の分析
144+
145+
以下の SQL クエリは、Cassandra の明細項目データを調査することで、基本的な分析機能を示します。このクエリは以下のようなビジネス上の質問に答えるのに役立ちます:
146+
147+
- 返品された商品対正常に出荷された商品の割合は?
148+
- 返品の財務的影響は?
149+
- 注文ステータスによって価格設定はどう異なるか?
150+
151+
このクエリは、返品ステータスとラインステータス別にグループ化された主要メトリックを計算します:
152+
153+
```sql
154+
SELECT
155+
l_returnflag,
156+
l_linestatus,
157+
sum(l_quantity) AS sum_qty,
158+
sum(l_extendedprice) AS sum_base_price,
159+
sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
160+
sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
161+
avg(l_quantity) AS avg_qty,
162+
avg(l_extendedprice) AS avg_price,
163+
avg(l_discount) AS avg_disc,
164+
count(*) AS count_order
165+
FROM
166+
sample_catalog.scalardb.cassandrans.lineitem
167+
WHERE
168+
to_date(l_shipdate, 'yyyy-MM-dd') <= date '1998-12-01' - 3
169+
GROUP BY
170+
l_returnflag,
171+
l_linestatus
172+
ORDER BY
173+
l_returnflag,
174+
l_linestatus;
175+
```
176+
177+
次の出力が表示されます:
178+
179+
```console
180+
A F 1519 2374824.6560278563 1387364.2207725341 1962763.4654265852 26.649122807017545 41663.590456629056 0.41501802923479575 57
181+
N F 98 146371.2295412012 85593.96776336085 121041.55837332775 32.666666666666664 48790.409847067065 0.40984706454007996 3
182+
N O 5374 8007373.247086477 4685647.785126835 6624210.945739046 24.427272727272726 36397.15112312035 0.4147594809559689 220
183+
R F 1461 2190869.9676265526 1284178.4378283697 1814151.2807494882 25.189655172413794 37773.62013149229 0.41323493790730753 58
184+
```
185+
186+
### クエリ 2: 収益最適化のためのクロスデータベース分析
187+
188+
以下の SQL クエリは、ScalarDB Analytics の主要な機能を示します:データ移動なしで異なるデータベース間のデータを結合する機能です。具体的には、このクエリは ETL パイプラインなどによるデータ移動を必要とせずに、PostgreSQL の顧客テーブル、MySQL の注文テーブル、Cassandra の明細項目を結合します。このクエリは以下のようなビジネス上の質問に答えるのに役立ちます:
189+
190+
- フルフィルメントを優先するために、特定の顧客セグメントからのまだ出荷されていない高額注文は何か?
191+
192+
このクエリは、AUTOMOBILE セグメントの顧客の未出荷注文を収益順に見つけます:
193+
194+
```sql
195+
SELECT
196+
l_orderkey,
197+
sum(l_extendedprice * (1 - l_discount)) AS revenue,
198+
o_orderdate,
199+
o_shippriority
200+
FROM
201+
sample_catalog.postgres.sample_ns.customer,
202+
sample_catalog.scalardb.mysqlns.orders,
203+
sample_catalog.scalardb.cassandrans.lineitem
204+
WHERE
205+
c_mktsegment = 'AUTOMOBILE'
206+
AND c_custkey = o_custkey
207+
AND l_orderkey = o_orderkey
208+
AND o_orderdate < '1995-03-15'
209+
AND l_shipdate > '1995-03-15'
210+
GROUP BY
211+
l_orderkey,
212+
o_orderdate,
213+
o_shippriority
214+
ORDER BY
215+
revenue DESC,
216+
o_orderdate,
217+
l_orderkey
218+
LIMIT 10;
219+
```
220+
221+
次の出力が表示されます:
222+
223+
```console
224+
1071617 128186.99915996166 1995-03-10 0
225+
1959075 33104.51278645416 1994-12-23 0
226+
430243 19476.115819260962 1994-12-24 0
227+
```
228+
229+
結果は、注文キー `1071617` の注文の出荷を優先すべきであることを示しています。
230+
231+
:::note
232+
233+
このサンプルチュートリアルでインポートされたテーブルに対して、Apache Spark および Spark SQL がサポートする任意のクエリを実行することもできます。ScalarDB Analytics は Spark SQL がサポートするすべてのクエリをサポートしているため、例に示されている選択 (フィルタリング)、結合、集計、順序付けだけでなく、ウィンドウ関数、ラテラル結合、その他のさまざまな操作も実行できます。
234+
235+
Spark SQL がサポートするクエリの種類を確認するには、[Spark SQL ドキュメント](https://spark.apache.org/docs/latest/sql-ref.html)を参照してください。
236+
237+
:::
238+
239+
## ステップ 6: サンプルアプリケーションを停止する
240+
241+
サンプルアプリケーションを停止し、関連付けられているすべてのボリュームを削除するには、次のコマンドを実行します。このアクションにより、すべてのサービスがシャットダウンされ、ボリュームに保存されているすべての永続データが削除され、アプリケーションの状態がリセットされます:
242+
243+
```console
244+
docker compose down -v
245+
```
246+
247+
## リファレンス
248+
249+
### スキーマの詳細
250+
251+
次のエンティティ関係図は、PostgreSQL、MySQL、Cassandra のテーブル間の関係を示しており、外部キーによって顧客、注文、明細項目がリンクされています。
252+
253+
```mermaid
254+
erDiagram
255+
"postgres.sample_ns.customer" ||--|{ "scalardb.mysqlns.orders" : "custkey"
256+
"postgres.sample_ns.customer" {
257+
int c_custkey
258+
text c_name
259+
text c_address
260+
int c_nationkey
261+
text c_phone
262+
double c_acctbal
263+
text c_mktsegment
264+
text c_comment
265+
}
266+
"scalardb.mysqlns.orders" ||--|{ "scalardb.cassandrans.lineitem" : "orderkey"
267+
"scalardb.mysqlns.orders" {
268+
int o_orderkey
269+
int o_custkey
270+
text o_orderstatus
271+
double o_totalprice
272+
text o_orderdate
273+
text o_orderpriority
274+
text o_clerk
275+
int o_shippriority
276+
text o_comment
277+
}
278+
"scalardb.cassandrans.lineitem" {
279+
int l_orderkey
280+
int l_partkey
281+
int l_suppkey
282+
int l_linenumber
283+
double l_quantity
284+
double l_extendedprice
285+
double l_discount
286+
double l_tax
287+
text l_returnflag
288+
text l_linestatus
289+
text l_shipdate
290+
text l_commitdate
291+
text l_receiptdate
292+
text l_shipinstruct
293+
text l_shipmode
294+
text l_comment
295+
}
296+
```
297+
298+
- `postgres.sample_ns.customer` は PostgreSQL のテーブルであり、ScalarDB によって管理されていません。
299+
- `scalardb.mysqlns.orders``scalardb.cassandrans.lineitem` は ScalarDB のテーブルであり、それぞれ MySQL と Cassandra にマッピングされています。
300+
301+
テーブルの簡単な説明は次のとおりです:
302+
303+
- **`postgres.sample_ns.customer`.** 顧客に関する情報を表すテーブル。このテーブルには、顧客キー、名前、住所、電話番号、口座残高などの属性が含まれます。
304+
- **`scalardb.mysqlns.orders`.** 顧客が行った注文に関する情報を含むテーブル。このテーブルには、注文キー、顧客キー、注文ステータス、注文日、注文優先度などの属性が含まれます。
305+
- **`scalardb.cassandrans.lineitem`.** 注文に関連付けられた明細項目を表すテーブル。このテーブルには、注文キー、部品キー、サプライヤーキー、数量、価格、出荷日などの属性が含まれます。

0 commit comments

Comments
 (0)