Skip to content

Commit c7f1185

Browse files
AUTO: Docs repo sync - ScalarDB (#1129)
* AUTO: Sync ScalarDB docs in Japanese to docs site repo * Remove unnecessary spaces * Add missing ScalarDB Cluster doc * Add new ScalarDB Analytics docs --------- Co-authored-by: josh-wong <[email protected]> Co-authored-by: Josh Wong <[email protected]>
1 parent 9baeb69 commit c7f1185

File tree

6 files changed

+1130
-6
lines changed

6 files changed

+1130
-6
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
tags:
3+
- Enterprise Option
4+
displayed_sidebar: docsJapanese
5+
---
6+
7+
# ScalarDB Analytics
8+
9+
import WarningLicenseKeyContact from '/src/components/en-us/_warning-license-key-contact.mdx';
10+
import TranslationBanner from '/src/components/_translation-ja-jp.mdx';
11+
12+
<TranslationBanner />
13+
14+
**ScalarDB Analytics** は ScalarDB の分析コンポーネントです。ScalarDB と同様に、 PostgreSQL や MySQL などの RDBMS から Cassandra や DynamoDB などの NoSQL データベースまで、多様なデータソースを単一の論理データベースに統合します。ScalarDB は複数のデータベースにわたる強力なトランザクション一貫性を持つ運用ワークロードに焦点を当てているのに対し、ScalarDB Analytics は分析ワークロード向けに最適化されています。複雑な結合処理、集計処理、ウィンドウ関数などの幅広いクエリをサポートしています。ScalarDB Analytics は、ScalarDB で管理されているデータソースと管理されていないデータソースの両方でシームレスに動作し、様々なデータセットにわたる高度な分析クエリを可能にします。
15+
16+
現在のバージョンの ScalarDB Analytics は、実行エンジンとして **Apache Spark** を活用しています。Sparkカスタムカタログを利用することで、ScalarDB で管理されているデータソースと管理されていないデータソースの統合ビューを提供します。ScalarDB Analytics を使用すると、これらのデータソースのテーブルを Spark のテーブルとして扱うことができます。これにより、任意の Spark SQL クエリをシームレスに実行できます。例えば、Cassandra に保存されているテーブルと PostgreSQL のテーブルを結合して、簡単にクロスデータベース分析を実行することができます。
17+
18+
<WarningLicenseKeyContact product="ScalarDB Analytics with Spark" />
19+
20+
## さらに詳しく
21+
22+
* サンプルデータセットとアプリケーションを使用した ScalarDB Analytics の使用方法のチュートリアルについては、[ScalarDB Analytics の使用を開始する](../scalardb-samples/scalardb-analytics-spark-sample/README.mdx)を参照してください。
23+
* サポートされている Spark と Scala のバージョンについては、[ScalarDB Analytics with Spark のバージョン互換性](./run-analytical-queries.mdx#version-compatibility)を参照してください。
Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
---
2+
tags:
3+
- Enterprise Option
4+
displayed_sidebar: docsJapanese
5+
---
6+
7+
# パブリッククラウド環境への ScalarDB Analytics のデプロイ
8+
9+
import Tabs from '@theme/Tabs';
10+
import TabItem from '@theme/TabItem';
11+
import TranslationBanner from '/src/components/_translation-ja-jp.mdx';
12+
13+
<TranslationBanner />
14+
15+
このガイドでは、パブリッククラウド環境に ScalarDB Analytics をデプロイする方法について説明します。ScalarDB Analytics は現在、実行エンジンとして Apache Spark を使用しており、Amazon EMR や Databricks などのパブリッククラウドプロバイダーが提供するマネージド Spark サービスをサポートしています。
16+
17+
## サポートされているマネージド Spark サービスとそのアプリケーションタイプ
18+
19+
ScalarDB Analytics は以下のマネージド Spark サービスとアプリケーションタイプをサポートしています。
20+
21+
| パブリッククラウドサービス | Spark Driver | Spark Connect | JDBC |
22+
| -------------------------- | ------------ | ------------- | ---- |
23+
| Amazon EMR (EMR on EC2) ||||
24+
| Databricks ||||
25+
26+
## 設定とデプロイ
27+
28+
パブリッククラウド環境を選択し、指示に従って ScalarDB Analytics を設定およびデプロイしてください。
29+
30+
<Tabs groupId="cloud-service" queryString>
31+
<TabItem value="emr" label="Amazon EMR">
32+
33+
<h3>Amazon EMR の使用</h3>
34+
35+
ScalarDB Analytics を通じて分析クエリを実行するために Amazon EMR(EMR on EC2)を使用できます。EMR クラスターを起動する基本については、[AWS EMR on EC2 ドキュメント](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan.html)を参照してください。
36+
37+
<h4>ScalarDB Analytics の設定</h4>
38+
39+
ScalarDB Analytics を有効にするには、EMR クラスターを起動するときにソフトウェア設定に次の構成を追加する必要があります。括弧内の内容を必ず置き換えてください:
40+
41+
```json
42+
[
43+
{
44+
"Classification": "spark-defaults",
45+
"Properties": {
46+
"spark.jars.packages": "com.scalar-labs:scalardb-analytics-spark-all-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_VERSION>",
47+
"spark.sql.catalog.<CATALOG_NAME>": "com.scalar.db.analytics.spark.ScalarDbAnalyticsCatalog",
48+
"spark.sql.extensions": "com.scalar.db.analytics.spark.extension.ScalarDbAnalyticsExtensions",
49+
"spark.sql.catalog.<CATALOG_NAME>.license.cert_pem": "<YOUR_LICENSE_CERT_PEM>",
50+
"spark.sql.catalog.<CATALOG_NAME>.license.key": "<YOUR_LICENSE_KEY>",
51+
52+
// 以下にデータソースの設定を続けてください
53+
}
54+
}
55+
]
56+
```
57+
58+
括弧内の内容は以下のように変更してください:
59+
60+
- `<SPARK_VERSION>`: Spark のバージョン
61+
- `<SCALA_VERSION>`: Spark のビルドに使用される Scala のバージョン
62+
- `<SCALARDB_ANALYTICS_VERSION>`: ScalarDB Analytics のバージョン
63+
- `<CATALOG_NAME>`: カタログの名前
64+
- `<YOUR_LICENSE_CERT_PEM>`: PEM エンコードされたライセンス証明書
65+
- `<YOUR_LICENSE_KEY>`: ライセンスキー
66+
67+
詳細については、[ScalarDB Analytics のセットアップのための Spark 設定](./run-analytical-queries.mdx#scalardb-analytics-のセットアップのための-spark-設定)を参照してください。
68+
69+
<h4>Spark Driver を介した分析クエリの実行</h4>
70+
71+
EMR Spark クラスターが起動した後、ssh を使用して EMR クラスターのプライマリノードに接続し、Spark アプリケーションを実行できます。Spark Driver アプリケーションの作成方法の詳細については、[Spark Driver アプリケーション](./run-analytical-queries.mdx?spark-application-type=spark-driver#spark-アプリケーションの開発)を参照してください。
72+
73+
<h4>Spark Connect を介した分析クエリの実行</h4>
74+
75+
Spark Connect を使用して、起動した EMR クラスターを使用して Spark アプリケーションをリモートで実行できます。
76+
77+
まず、[Spark Driver アプリケーション](./run-analytical-queries.mdx?spark-application-type=spark-driver#spark-アプリケーションの開発)と同じようにソフトウェア設定を構成する必要があります。また、Spark Connect を有効にするために次の設定も行う必要があります。
78+
79+
<h5>Spark Connect サーバーのインバウンドトラフィックを許可する</h5>
80+
81+
1. Spark Connect サーバーのインバウンドトラフィックを許可するセキュリティグループを作成します(デフォルトはポート15001)。
82+
2. 「Amazon EMR サービスロール」のロールがセキュリティグループを EMR クラスターのプライマリノードにアタッチできるようにします。
83+
3. EMR クラスターを起動するときに、「追加のセキュリティグループ」としてセキュリティグループを EMR クラスターのプライマリノードに追加します。
84+
85+
<h5>ブートストラップアクションを介した Spark Connect サーバーの起動</h5>
86+
87+
1. 次のように Spark Connect サーバーを起動するためのスクリプトファイルを作成します:
88+
89+
```bash
90+
#!/usr/bin/env bash
91+
92+
set -eu -o pipefail
93+
94+
cd /var/lib/spark
95+
96+
sudo -u spark /usr/lib/spark/sbin/start-connect-server.sh --packages org.apache.spark:spark-connect_<SCALA_VERSION>:<SPARK_FULL_VERSION>,com.scalar-labs:scalardb-analytics-spark-all-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_VERSION>
97+
```
98+
99+
括弧内の内容は以下のように変更してください:
100+
101+
- `<SCALA_VERSION>`: Spark インストールに合わせた Scala のメジャーおよびマイナーバージョン(2.12 や 2.13 など)
102+
- `<SPARK_FULL_VERSION>`: 使用している Spark の完全なバージョン(3.5.3 など)
103+
- `<SPARK_VERSION>`: 使用している Spark のメジャーおよびマイナーバージョン(3.5 など)
104+
- `<SCALARDB_ANALYTICS_VERSION>`: ScalarDB Analytics のバージョン
105+
106+
2. スクリプトファイルを S3 にアップロードします。
107+
3. 「Amazon の EMR 用 EC2 インスタンスプロファイル」のロールがS3にアップロードされたスクリプトファイルにアクセスできるようにします。
108+
4. EMR クラスターを起動するときに、アップロードされたスクリプトファイルを「ブートストラップアクション」に追加します。
109+
110+
<h5>分析クエリの実行</h5>
111+
112+
Spark Connect サーバーのリモート URL(`sc://<PRIMARY_NODE_PUBLIC_HOSTNAME>:15001`)を使用して、どこからでも Spark Connect を介して Spark アプリケーションを実行できます。
113+
114+
Spark Connect を使用した Spark アプリケーションの作成方法の詳細については、[Spark Connect アプリケーション](./run-analytical-queries.mdx?spark-application-type=spark-connect#spark-アプリケーションの開発)を参照してください。
115+
116+
</TabItem>
117+
<TabItem value="databricks" label="Databricks">
118+
<h3>Databricks の使用</h3>
119+
120+
ScalarDB Analytics を通じて分析クエリを実行するために Databricks を使用できます。
121+
122+
:::note
123+
124+
Databricks は Apache Spark の修正版を提供しており、オリジナルの Apache Spark とは異なる動作をすることに注意してください。
125+
126+
:::
127+
128+
<h4>Databricks クラスターの起動</h4>
129+
130+
ScalarDB Analytics は Databricks の汎用クラスターとジョブコンピュートクラスターで動作します。クラスターを起動するとき、ScalarDB Analytics を有効にするために以下のようにクラスターを設定する必要があります:
131+
132+
1. Databricks CLI を使用して、ライセンス証明書とライセンスキーをクラスターに保存します。
133+
134+
```console
135+
databricks secrets create-scope scalardb-analytics-secret # 任意のシークレットスコープ名を使用できます
136+
cat license_key.json | databricks secrets put-secret scalardb-analytics-secret license-key
137+
cat license_cert.pem | databricks secrets put-secret scalardb-analytics-secret license-cert
138+
```
139+
140+
:::note
141+
142+
Databricks CLI のインストールと使用方法の詳細については、[Databricks CLI ドキュメント](https://docs.databricks.com/en/dev-tools/cli/index.html)を参照してください。
143+
144+
:::
145+
146+
2. クラスターモードに「No isolation shared」を選択します。(これは必須です。ScalarDB Analytics はこのクラスターモードでのみ動作します。)
147+
3. Spark 3.4以降をサポートする適切な Databricks ランタイムバージョンを選択します。
148+
4. 「詳細オプション」>「Spark 設定」を以下のように設定します。`<CATALOG_NAME>` を使用したいカタログの名前に置き換えてください:
149+
150+
```
151+
spark.sql.catalog.<CATALOG_NAME> com.scalar.db.analytics.spark.ScalarDbAnalyticsCatalog
152+
spark.sql.extensions com.scalar.db.analytics.spark.extension.ScalarDbAnalyticsExtensions
153+
spark.sql.catalog.<CATALOG_NAME>.license.key {{secrets/scalardb-analytics-secret/license-key}}
154+
spark.sql.catalog.<CATALOG_NAME>.license.cert_pem {{secrets/scalardb-analytics-secret/license-pem}}
155+
```
156+
157+
:::note
158+
159+
データソースも設定する必要があります。詳細については、[ScalarDB Analytics のセットアップのための Spark 設定](./run-analytical-queries.mdx#scalardb-analytics-のセットアップのための-spark-設定)を参照してください。
160+
161+
:::
162+
163+
:::note
164+
165+
前のステップで異なるシークレット名を指定した場合は、上記の設定でシークレット名を必ず置き換えてください。
166+
167+
:::
168+
169+
5. Maven 依存関係として、起動したクラスターに ScalarDB Analytics のライブラリを追加します。ライブラリの追加方法の詳細については、[Databricks クラスターライブラリドキュメント](https://docs.databricks.com/en/libraries/cluster-libraries.html)を参照してください。
170+
171+
<h4>Spark Driver を介した分析クエリの実行</h4>
172+
173+
適切に設定された Databricks クラスターで Spark アプリケーションを Databricks Notebook または Databricks Jobs で実行して、ScalarDB Analytics 内のテーブルにアクセスできます。Spark アプリケーションを実行するには、Pyspark、Scala、または Spark SQL アプリケーションを Databricks Notebook に移行するか、Databricks Jobs を使用して Spark アプリケーションを実行できます。ScalarDB Analytics は Notebook、Python、JAR、および SQL のタスクタイプで動作します。
174+
175+
Databricks Jobs の使用方法の詳細については、[Databricks Jobs ドキュメント](https://docs.databricks.com/en/jobs/index.html)を参照してください。
176+
177+
<h4>JDBC ドライバーを介した分析クエリの実行</h4>
178+
179+
Databricks はクラスター上で SQL ジョブを実行するための JDBC をサポートしています。以下のような追加設定を行うことで、ScalarDB Analytics で SQL を使用して Spark アプリケーションを実行できます:
180+
181+
1. Maven リポジトリから ScalarDB Analytics ライブラリの JAR ファイルをダウンロードします。
182+
2. JAR ファイルを Databricks ワークスペースにアップロードします。
183+
3. Maven 依存関係の代わりに、ライブラリとして JAR ファイルをクラスターに追加します。
184+
4. 以下のように初期化スクリプトを作成します。`<PATH_TO_YOUR_JAR_FILE_IN_WORKSPACE>` を Databricks ワークスペース内の JAR ファイルのパスに置き換えてください:
185+
186+
```bash
187+
#!/bin/bash
188+
189+
# Target directories
190+
TARGET_DIRECTORIES=("/databricks/jars" "/databricks/hive_metastore_jars")
191+
JAR_PATH="<PATH_TO_YOUR_JAR_FILE_IN_WORKSPACE>
192+
193+
# Copy the JAR file to the target directories
194+
for TARGET_DIR in "${TARGET_DIRECTORIES[@]}"; do
195+
mkdir -p "$TARGET_DIR"
196+
cp "$JAR_PATH" "$TARGET_DIR/"
197+
done
198+
```
199+
200+
5. 初期化スクリプトを Databricks ワークスペースにアップロードします。
201+
6. クラスターを起動するときに、「詳細オプション」>「初期化スクリプト」にスクリプトを追加します。
202+
203+
クラスターが起動した後、クラスター詳細ページの「詳細オプション」>「JDBC/ODBC」タブでクラスターの JDBC URL を取得できます。
204+
205+
JDBC を使用して Databricks クラスターに接続するには、アプリケーションの依存関係に Databricks JDBC ドライバーを追加する必要があります。例えば、Gradle を使用している場合は、`build.gradle` ファイルに次の依存関係を追加できます:
206+
207+
```groovy
208+
implementation("com.databricks:databricks-jdbc:0.9.6-oss")
209+
```
210+
211+
その後、JDBC アプリケーションで一般的なように、JDBC URL(`<YOUR_CLUSTERS_JDBC_URL>`)を使用して JDBC で Databricks クラスターに接続できます。
212+
213+
```java
214+
Class.forName("com.databricks.client.jdbc.Driver");
215+
String url = "<YOUR_CLUSTERS_JDBC_URL>";
216+
Connection conn = DriverManager.getConnection(url)
217+
```
218+
219+
Databricks で JDBC を使用する方法の詳細については、[Databricks JDBC ドライバードキュメント](https://docs.databricks.com/en/integrations/jdbc/index.html)を参照してください。
220+
221+
</TabItem>
222+
</Tabs>

0 commit comments

Comments
 (0)