|
| 1 | +--- |
| 2 | +tags: |
| 3 | + - Enterprise Option |
| 4 | + - Public Preview |
| 5 | +--- |
| 6 | + |
| 7 | +# ScalarDB Analytics with Spark をはじめよう |
| 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 with Spark の使用を開始する方法について説明します。 |
| 16 | + |
| 17 | +## 前提条件 |
| 18 | + |
| 19 | +ScalarDB Analytics with Spark を使用してクエリを実行する前に、ScalarDB テーブルを設定し、Apache Spark をインストールする必要があります。 |
| 20 | + |
| 21 | +### ScalarDB テーブルの設定 |
| 22 | + |
| 23 | +ScalarDB Analytics with Spark を使用するには、分析クエリを実行するための ScalarDB の基盤となるデータベースが少なくとも 1 つ必要です。ScalarDB に独自の基盤となるデータベースを設定している場合は、このセクションをスキップして、代わりにそのデータベースを使用できます。 |
| 24 | + |
| 25 | +独自のデータベースをまだ設定していない場合は、[ScalarDB Analytics with Spark を使用してサンプルデータに対して分析クエリを実行する](../scalardb-samples/scalardb-analytics-spark-sample/README.mdx)の手順に従って、サンプルの基盤となるデータベースを使用して ScalarDB を設定できます。 |
| 26 | + |
| 27 | +### Apache Spark のインストール |
| 28 | + |
| 29 | +Apache Spark のパッケージリリースも必要です。すでに Spark がインストールされている場合は、このセクションをスキップできます。 |
| 30 | + |
| 31 | +Spark が必要な場合は、[Spark ウェブサイト](https://spark.apache.org/downloads.html)からダウンロードできます。圧縮された Spark ファイルをダウンロードしたら、次のコマンドを実行してファイルを解凍する必要があります。`X.X.X` は、ダウンロードした Spark のバージョンに置き換えてください。 |
| 32 | + |
| 33 | +```console |
| 34 | +tar xf spark-X.X.X-bin-hadoop3.tgz |
| 35 | +``` |
| 36 | + |
| 37 | +次に、次のコマンドを実行してディレクトリに入ります。ここでも、`X.X.X` はダウンロードした Spark のバージョンに置き換えます。 |
| 38 | + |
| 39 | +```console |
| 40 | +cd spark-X.X.X-bin-hadoop3 |
| 41 | +``` |
| 42 | + |
| 43 | +## Spark シェルを設定する |
| 44 | + |
| 45 | +以下では、Spark シェルを使用してインタラクティブな分析を実行する方法について説明します。 |
| 46 | + |
| 47 | +ScalarDB Analytics with Spark は Maven Central Repository で利用できるため、`--packages` オプションを使用して Spark シェルで ScalarDB Analytics with Spark を有効にすることができます。`<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION>` は、使用しているバージョンに置き換えてください。 |
| 48 | + |
| 49 | +```console |
| 50 | +./bin/spark-shell --packages com.scalar-labs:scalardb-analytics-spark-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION> |
| 51 | +``` |
| 52 | + |
| 53 | +:::warning |
| 54 | + |
| 55 | +ScalarDB Analytics with Spark は、さまざまな Spark および Scala バージョン用のさまざまなアーティファクトを提供します。これは、`scalardb-analytics-spark-<SPARK_VERSION>_<SCALA_VERSION>` の形式で提供されます。使用している Spark および Scala バージョンに一致するアーティファクトを選択してください。 |
| 56 | + |
| 57 | +参考として、[ScalarDB Analytics with Spark のバージョン互換性](version-compatibility.mdx)を参照してください。 |
| 58 | + |
| 59 | +::: |
| 60 | + |
| 61 | +次に、シェルで ScalarDB Analytics with Spark 環境を設定する必要があります。ScalarDB Analytics with Spark には、分析クエリを実行するためのすべての設定を行うヘルパーメソッドが用意されています。 |
| 62 | + |
| 63 | +```scala |
| 64 | +spark-shell> import com.scalar.db.analytics.spark.implicits._ |
| 65 | +spark-shell> spark.setupScalarDbAnalytics( |
| 66 | + | // ScalarDB config file |
| 67 | + | configPath = "/<PATH_TO_YOUR_SCALARDB_PROPERTIES>/config.properties", |
| 68 | + | // Namespaces in ScalarDB to import |
| 69 | + | namespaces = Set("<YOUR_NAMESPACE_NAME_1>", "<YOUR_NAMESPACE_NAME_2>"), |
| 70 | + | // License information |
| 71 | + | license = License.certPath("""{"your":"license", "key":"in", "json":"format"}""", "/<PATH_TO_YOUR_LICENSE>/cert.pem") |
| 72 | + | ) |
| 73 | +``` |
| 74 | + |
| 75 | +これで、ScalarDB の基盤となるデータベースのテーブルからデータを読み取り、Spark Dataset API を通じて任意の分析クエリを実行できるようになりました。例: |
| 76 | + |
| 77 | +```console |
| 78 | +spark-shell> spark.sql("select * from <YOUR_NAMESPACE_NAME_1>.<YOUR_TABLE_NAME>").show() |
| 79 | +``` |
| 80 | + |
| 81 | +## Spark アプリケーションを実装して起動する |
| 82 | + |
| 83 | +このセクションでは、ScalarDB Analytics with Spark を使用して Spark アプリケーションを実装し、当該アプリケーションを起動する方法について説明します。 |
| 84 | + |
| 85 | +SBT、Gradle、Maven などのビルドツールを使用して、ScalarDB Analytics with Spark をアプリケーションに統合できます。 |
| 86 | + |
| 87 | +<Tabs groupId="implementation" queryString> |
| 88 | + <TabItem value="gradle" label="Gradle" default> |
| 89 | + Gradle プロジェクトの場合は、`build.gradle.kts` ファイルに以下を追加し、`<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION>` を使用しているバージョンに置き換えます。 |
| 90 | + |
| 91 | + ```kotlin |
| 92 | + implementation("com.scalar-labs:scalardb-analytics-spark-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION>") |
| 93 | + ``` |
| 94 | + </TabItem> |
| 95 | + <TabItem value="maven" label="Maven" default> |
| 96 | + Groovy を使用して Gradle を設定するには、`build.gradle` ファイルに以下を追加し、`<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION>` を、使用しているバージョンに置き換えます。 |
| 97 | + |
| 98 | + ```groovy |
| 99 | + implementation 'com.scalar-labs:scalardb-analytics-spark-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION>' |
| 100 | + ``` |
| 101 | + </TabItem> |
| 102 | + <TabItem value="sbt" label="SBT"> |
| 103 | + アプリケーションを SBT プロジェクトに追加するには、`build.sbt` ファイルに次のコードを挿入し、`<SPARK_VERSION>` と `<SCALA_VERSION>` を使用しているバージョンに置き換えます。 |
| 104 | + |
| 105 | + ```scala |
| 106 | + libraryDependencies += "com.scalar-labs" %% "scalardb-analytics-spark-<SPARK_VERSION>" % "<SCALA_VERSION>" |
| 107 | + ``` |
| 108 | + </TabItem> |
| 109 | +</Tabs> |
| 110 | + |
| 111 | +ScalarDB Analytics with Spark をアプリケーションに統合した後、上記で説明したのと同じヘルパーメソッドを使用して、Spark アプリケーションで ScalarDB Analytics with Spark を設定できます。 |
| 112 | + |
| 113 | +<Tabs groupId="helper_method" queryString> |
| 114 | + <TabItem value="Scala" label="Scala" default> |
| 115 | + 以下は Scala を使用するサンプルアプリケーションです。 |
| 116 | + |
| 117 | + ```scala |
| 118 | + import com.scalar.db.analytics.spark.implicits._ |
| 119 | + |
| 120 | + object YourApp { |
| 121 | + def main(args: Array[String]): Unit = { |
| 122 | + // Initialize SparkSession as usual |
| 123 | + val spark = SparkSession.builder.appName("<YOUR_APPLICATION_NAME>").getOrCreate() |
| 124 | + // Setup ScalarDB Analytics with Spark via helper method |
| 125 | + spark.setupScalarDbAnalytics( |
| 126 | + // ScalarDB config file |
| 127 | + configPath = "/<PATH_TO_YOUR_SCALARDB_PROPERTIES>/config.properties", |
| 128 | + // Namespaces in ScalarDB to import |
| 129 | + namespaces = Set("<YOUR_NAMESPACE_NAME_1>", "<YOUR_NAMESPACE_NAME_2>"), |
| 130 | + // License information |
| 131 | + license = License.certPath("""{"your":"license", "key":"in", "json":"format"}""", "/<PATH_TO_YOUR_LICENSE>/cert.pem") |
| 132 | + ) |
| 133 | + // Run arbitrary queries |
| 134 | + spark.sql("select * from <YOUR_NAMESPACE_NAME_1>.<YOUR_TABLE_NAME>").show() |
| 135 | + // Stop SparkSession |
| 136 | + spark.stop() |
| 137 | + } |
| 138 | + } |
| 139 | + ``` |
| 140 | + </TabItem> |
| 141 | + <TabItem value="Java" label="Java"> |
| 142 | + Java で ScalarDB Analytics with Spark を使用した Spark アプリケーションを作成できます。 |
| 143 | + |
| 144 | + ```java |
| 145 | + import com.scalar.db.analytics.spark.ScalarDbAnalyticsInitializer |
| 146 | + |
| 147 | + class YourApp { |
| 148 | + public static void main(String[] args) { |
| 149 | + // Initialize SparkSession as usual |
| 150 | + SparkSession spark = SparkSession.builder().appName("<YOUR_APPLICATION_NAME>").getOrCreate() |
| 151 | + // Setup ScalarDB Analytics with Spark via helper class |
| 152 | + ScalarDbAnalyticsInitializer |
| 153 | + .builder() |
| 154 | + .spark(spark) |
| 155 | + .configPath("/<PATH_TO_YOUR_SCALARDB_PROPERTIES>/config.properties") |
| 156 | + .namespace("<YOUR_NAMESPACE_NAME_1>") |
| 157 | + .namespace("<YOUR_NAMESPACE_NAME_2>") |
| 158 | + .licenseKey("{\"your\":\"license\", \"key\":\"in\", \"json\":\"format\"}") |
| 159 | + .licenseCertPath("/<PATH_TO_YOUR_LICENSE>/cert.pem") |
| 160 | + .build() |
| 161 | + .run() |
| 162 | + // Run arbitrary queries |
| 163 | + spark.sql("select * from <YOUR_NAMESPACE_NAME_1>.<YOUR_TABLE_NAME>").show() |
| 164 | + // Stop SparkSession |
| 165 | + spark.stop() |
| 166 | + } |
| 167 | + } |
| 168 | + ``` |
| 169 | + </TabItem> |
| 170 | +</Tabs> |
| 171 | + |
| 172 | +次に、`sbt package` や `./gradlew assemble` などの好みのビルドツールを使用して .jar ファイルを作成する必要があります。 |
| 173 | + |
| 174 | +.jar ファイルを作成したら、`spark-submit` を使用してその .jar ファイルを Spark クラスターに送信できます。`--packages` オプションを使用して、次のコマンドを実行し、クラスターで ScalarDB Analytics ライブラリを有効にします。`<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION>` は、使用しているバージョンに置き換えてください。 |
| 175 | + |
| 176 | +```console |
| 177 | +./bin/spark-submit \ |
| 178 | + --class "YourApp" \ |
| 179 | + --packages com.scalar-labs:scalardb-analytics-spark-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_WITH_SPARK_VERSION> \ |
| 180 | + <YOUR_APP_NAME>.jar |
| 181 | +``` |
| 182 | + |
| 183 | +一般的な Spark アプリケーション開発の詳細については、[Apache Spark ドキュメント](https://spark.apache.org/docs/latest/)を参照してください。 |
0 commit comments