diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/README.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/README.mdx deleted file mode 100644 index f6ff390e..00000000 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/README.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -tags: - - Enterprise Option -displayed_sidebar: docsJapanese ---- - -# ScalarDB Analytics - -import WarningLicenseKeyContact from '/src/components/en-us/_warning-license-key-contact.mdx'; -import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; - - - -**ScalarDB Analytics** は ScalarDB の分析コンポーネントです。ScalarDB と同様に、 PostgreSQL や MySQL などの RDBMS から Cassandra や DynamoDB などの NoSQL データベースまで、多様なデータソースを単一の論理データベースに統合します。ScalarDB は複数のデータベースにわたる強力なトランザクション一貫性を持つ運用ワークロードに焦点を当てているのに対し、ScalarDB Analytics は分析ワークロード向けに最適化されています。複雑な結合処理、集計処理、ウィンドウ関数などの幅広いクエリをサポートしています。ScalarDB Analytics は、ScalarDB で管理されているデータソースと管理されていないデータソースの両方でシームレスに動作し、様々なデータセットにわたる高度な分析クエリを可能にします。 - -現在のバージョンの ScalarDB Analytics は、実行エンジンとして **Apache Spark** を活用しています。Sparkカスタムカタログを利用することで、ScalarDB で管理されているデータソースと管理されていないデータソースの統合ビューを提供します。ScalarDB Analytics を使用すると、これらのデータソースのテーブルを Spark のテーブルとして扱うことができます。これにより、任意の Spark SQL クエリをシームレスに実行できます。例えば、Cassandra に保存されているテーブルと PostgreSQL のテーブルを結合して、簡単にクロスデータベース分析を実行することができます。 - - - -## さらに詳しく - -* サンプルデータセットとアプリケーションを使用した ScalarDB Analytics の使用方法のチュートリアルについては、[ScalarDB Analytics の使用を開始する](../scalardb-samples/scalardb-analytics-spark-sample/README.mdx)を参照してください。 -* サポートされている Spark と Scala のバージョンについては、[ScalarDB Analytics with Spark のバージョン互換性](./run-analytical-queries.mdx#version-compatibility)を参照してください。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/deployment.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/deployment.mdx index d265a001..3467e59e 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/deployment.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/deployment.mdx @@ -12,20 +12,38 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; -このガイドでは、パブリッククラウド環境に ScalarDB Analytics をデプロイする方法について説明します。ScalarDB Analytics は現在、実行エンジンとして Apache Spark を使用しており、Amazon EMR や Databricks などのパブリッククラウドプロバイダーが提供するマネージド Spark サービスをサポートしています。 +このガイドでは、パブリッククラウド環境に ScalarDB Analytics をデプロイする方法について説明します。ScalarDB Analytics は 2 つの主要なコンポーネントで構成されています:ScalarDB Analytics サーバーと Apache Spark です。このガイドでは、Spark 環境として Amazon EMR または Databricks を選択できます。 -## サポートされているマネージド Spark サービスとそのアプリケーションタイプ +詳細については、[ScalarDB Analytics の設計](./design.mdx)を参照してください。 + +## ScalarDB Analytics catalog server のデプロイ + +ScalarDB Analytics には、メタデータとデータソース接続を管理する catalog server が必要です。Catalog server は、Kubernetes クラスター上で Helm チャートを使用してデプロイする必要があります。 + +詳細なデプロイ手順については、[TBD - Helm チャートデプロイメントガイド]を参照してください。 + +Catalog server をデプロイした後、Spark 設定のために以下の情報をメモしてください: + +- catalog server のホストアドレス +- カタログポート(デフォルト:11051) +- メータリングポート(デフォルト:11052) + +## Spark と ScalarDB Analytics のデプロイ + +Catalog server をデプロイした後、マネージド Spark サービスを使用して Spark と ScalarDB Analytics を設定およびデプロイできます。 + +### サポートされているマネージド Spark サービスとそのアプリケーションタイプ ScalarDB Analytics は以下のマネージド Spark サービスとアプリケーションタイプをサポートしています。 -| パブリッククラウドサービス | Spark Driver | Spark Connect | JDBC | +| パブリッククラウドサービス | Spark ドライバー | Spark Connect | JDBC | | -------------------------- | ------------ | ------------- | ---- | | Amazon EMR (EMR on EC2) | ✅ | ✅ | ❌ | | Databricks | ✅ | ❌ | ✅ | -## 設定とデプロイ +### 設定とデプロイ -パブリッククラウド環境を選択し、指示に従って ScalarDB Analytics を設定およびデプロイしてください。 +パブリッククラウド環境を選択し、指示に従って Spark と ScalarDB Analytics を設定およびデプロイしてください。 @@ -44,12 +62,11 @@ ScalarDB Analytics を有効にするには、EMR クラスターを起動する "Classification": "spark-defaults", "Properties": { "spark.jars.packages": "com.scalar-labs:scalardb-analytics-spark-all-_:", - "spark.sql.catalog.": "com.scalar.db.analytics.spark.ScalarDbAnalyticsCatalog", - "spark.sql.extensions": "com.scalar.db.analytics.spark.extension.ScalarDbAnalyticsExtensions", - "spark.sql.catalog..license.cert_pem": "", - "spark.sql.catalog..license.key": "", - - // 以下にデータソースの設定を続けてください + "spark.extraListeners": "com.scalar.db.analytics.spark.metering.ScalarDbAnalyticsListener", + "spark.sql.catalog.": "com.scalar.db.analytics.spark.catalog.ScalarDBAnalyticsCatalog", + "spark.sql.catalog..server.host": "", + "spark.sql.catalog..server.catalog.port": "11051", + "spark.sql.catalog..server.metering.port": "11052" } } ] @@ -57,24 +74,23 @@ ScalarDB Analytics を有効にするには、EMR クラスターを起動する 括弧内の内容は以下のように変更してください: -- ``: Spark のバージョン -- ``: Spark のビルドに使用される Scala のバージョン -- ``: ScalarDB Analytics のバージョン -- ``: カタログの名前 -- ``: PEM エンコードされたライセンス証明書 -- ``: ライセンスキー +- ``: Spark のバージョン(例:`3.5` または `3.4`) +- ``: Spark のビルドに使用される Scala のバージョン(例:`2.13` または `2.12`) +- ``: ScalarDB Analytics のバージョン(例:`3.16.0`) +- ``: カタログの名前。これは ScalarDB Analytics サーバー上で作成されたカタログと一致する必要があります。 +- ``: ScalarDB Analytics サーバーのホストアドレス 詳細については、[ScalarDB Analytics のセットアップのための Spark 設定](./run-analytical-queries.mdx#scalardb-analytics-のセットアップのための-spark-設定)を参照してください。 -

Spark Driver を介した分析クエリの実行

+

Spark ドライバーを介した分析クエリの実行

-EMR Spark クラスターが起動した後、ssh を使用して EMR クラスターのプライマリノードに接続し、Spark アプリケーションを実行できます。Spark Driver アプリケーションの作成方法の詳細については、[Spark Driver アプリケーション](./run-analytical-queries.mdx?spark-application-type=spark-driver#spark-アプリケーションの開発)を参照してください。 +EMR Spark クラスターが起動した後、ssh を使用して EMR クラスターのプライマリノードに接続し、Spark アプリケーションを実行できます。Spark ドライバーアプリケーションの作成方法の詳細については、[Spark ドライバーアプリケーション](./run-analytical-queries.mdx?spark-application-type=spark-driver#spark-アプリケーションの開発)を参照してください。

Spark Connect を介した分析クエリの実行

Spark Connect を使用して、起動した EMR クラスターを使用して Spark アプリケーションをリモートで実行できます。 -まず、[Spark Driver アプリケーション](./run-analytical-queries.mdx?spark-application-type=spark-driver#spark-アプリケーションの開発)と同じようにソフトウェア設定を構成する必要があります。また、Spark Connect を有効にするために次の設定も行う必要があります。 +まず、[Spark ドライバーアプリケーション](./run-analytical-queries.mdx?spark-application-type=spark-driver#spark-アプリケーションの開発)と同じようにソフトウェア設定を構成する必要があります。また、Spark Connect を有効にするために次の設定も行う必要があります。
Spark Connect サーバーのインバウンドトラフィックを許可する
@@ -129,46 +145,26 @@ Databricks は Apache Spark の修正版を提供しており、オリジナル ScalarDB Analytics は Databricks の汎用クラスターとジョブコンピュートクラスターで動作します。クラスターを起動するとき、ScalarDB Analytics を有効にするために以下のようにクラスターを設定する必要があります: -1. Databricks CLI を使用して、ライセンス証明書とライセンスキーをクラスターに保存します。 - -```console -databricks secrets create-scope scalardb-analytics-secret # 任意のシークレットスコープ名を使用できます -cat license_key.json | databricks secrets put-secret scalardb-analytics-secret license-key -cat license_cert.pem | databricks secrets put-secret scalardb-analytics-secret license-cert -``` - -:::note - -Databricks CLI のインストールと使用方法の詳細については、[Databricks CLI ドキュメント](https://docs.databricks.com/en/dev-tools/cli/index.html)を参照してください。 - -::: - -2. クラスターモードに「No isolation shared」を選択します。(これは必須です。ScalarDB Analytics はこのクラスターモードでのみ動作します。) -3. Spark 3.4以降をサポートする適切な Databricks ランタイムバージョンを選択します。 -4. 「詳細オプション」>「Spark 設定」を以下のように設定します。`` を使用したいカタログの名前に置き換えてください: +1. クラスターモードに「No isolation shared」を選択します。(これは必須です。ScalarDB Analytics はこのクラスターモードでのみ動作します。) +2. Spark 3.4以降をサポートする適切な Databricks ランタイムバージョンを選択します。 +3. 「詳細オプション」>「Spark 設定」を以下のように設定します: ``` -spark.sql.catalog. com.scalar.db.analytics.spark.ScalarDbAnalyticsCatalog -spark.sql.extensions com.scalar.db.analytics.spark.extension.ScalarDbAnalyticsExtensions -spark.sql.catalog..license.key {{secrets/scalardb-analytics-secret/license-key}} -spark.sql.catalog..license.cert_pem {{secrets/scalardb-analytics-secret/license-pem}} +spark.extraListeners com.scalar.db.analytics.spark.metering.ScalarDbAnalyticsListener +spark.sql.catalog. com.scalar.db.analytics.spark.catalog.ScalarDBAnalyticsCatalog +spark.sql.catalog..server.host +spark.sql.catalog..server.catalog.port 11051 +spark.sql.catalog..server.metering.port 11052 ``` -:::note - -データソースも設定する必要があります。詳細については、[ScalarDB Analytics のセットアップのための Spark 設定](./run-analytical-queries.mdx#scalardb-analytics-のセットアップのための-spark-設定)を参照してください。 +プレースホルダーを置き換えてください: -::: - -:::note - -前のステップで異なるシークレット名を指定した場合は、上記の設定でシークレット名を必ず置き換えてください。 - -::: +- ``: カタログの名前。これは ScalarDB Analytics サーバー上で作成されたカタログと一致する必要があります。 +- ``: ScalarDB Analytics サーバーのホストアドレス -5. Maven 依存関係として、起動したクラスターに ScalarDB Analytics のライブラリを追加します。ライブラリの追加方法の詳細については、[Databricks クラスターライブラリドキュメント](https://docs.databricks.com/en/libraries/cluster-libraries.html)を参照してください。 +4. Maven 依存関係として、起動したクラスターに ScalarDB Analytics のライブラリを追加します。ライブラリの追加方法の詳細については、[Databricks クラスターライブラリドキュメント](https://docs.databricks.com/en/libraries/cluster-libraries.html)を参照してください。 -

Spark Driver を介した分析クエリの実行

+

Spark ドライバーを介した分析クエリの実行

適切に設定された Databricks クラスターで Spark アプリケーションを Databricks Notebook または Databricks Jobs で実行して、ScalarDB Analytics 内のテーブルにアクセスできます。Spark アプリケーションを実行するには、Pyspark、Scala、または Spark SQL アプリケーションを Databricks Notebook に移行するか、Databricks Jobs を使用して Spark アプリケーションを実行できます。ScalarDB Analytics は Notebook、Python、JAR、および SQL のタスクタイプで動作します。 @@ -188,7 +184,7 @@ Databricks はクラスター上で SQL ジョブを実行するための JDBC # Target directories TARGET_DIRECTORIES=("/databricks/jars" "/databricks/hive_metastore_jars") -JAR_PATH=" +JAR_PATH="" # Copy the JAR file to the target directories for TARGET_DIR in "${TARGET_DIRECTORIES[@]}"; do diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/design.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/design.mdx index f5608580..efec5d36 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/design.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/design.mdx @@ -89,294 +89,16 @@ ScalarDB Analytics は様々なデータソースにわたって幅広いデー - `DURATION` - `INTERVAL` -### データソース別のカタログ情報マッピング +これらのデータ型はすべてのデータソースで使用され、異種データベースのクエリに統一された型システムを提供します。 -データソースを ScalarDB Analytics に登録する際、データソースのカタログ情報(名前空間、テーブル、列など)が解決され、ユニバーサルデータカタログに登録されます。データソースのカタログ情報を解決するために、データソース側の特定のオブジェクトがユニバーサルデータカタログオブジェクトにマッピングされます。このマッピングはカタログレベルのマッピングとデータ型マッピングの2つの部分で構成されています。以下のセクションでは、ScalarDB Analytics が各データソースからカタログレベルとデータ型をユニバーサルデータカタログにどのようにマッピングするかを説明します。 +### データソース統合 -#### カタログレベルのマッピング +データソースを ScalarDB Analytics に登録する際、2種類のマッピングが行われます: -カタログレベルのマッピングは、データソースから名前空間名、テーブル名、および列名をユニバーサルデータカタログへのマッピングです。各データソースでのカタログレベルのマッピングを確認するには、データソースを選択してください。 +1. **カタログ構造マッピング:** データソースのカタログ情報(名前空間、テーブル、列)が解決され、ユニバーサルデータカタログ構造にマッピングされます +2. **データ型マッピング:** 各データソースのネイティブデータ型が、上記のユニバーサルデータ型にマッピングされます - - - ScalarDB のカタログ情報は ScalarDB Analytics によって自動的に解決されます。カタログレベルのオブジェクトは以下のようにマッピングされます: - - - ScalarDB 名前空間は名前空間にマッピングされます。したがって、ScalarDB データソースの名前空間は常に単一レベルで、名前空間名のみで設定されます。 - - ScalarDB テーブルはテーブルにマッピングされます。 - - ScalarDB 列は列にマッピングされます。 - - - - - PostgreSQL のカタログ情報は ScalarDB Analytics によって自動的に解決されます。カタログレベルのオブジェクトは以下のようにマッピングされます: - - - PostgreSQL スキーマは名前空間にマッピングされます。したがって、PostgreSQL データソースの名前空間は常に単一レベルで、スキーマ名のみで設定されます。 - - ユーザー定義スキーマのみが名前空間にマッピングされます。以下のシステムスキーマは無視されます: - - `information_schema` - - `pg_catalog` - - PostgreSQL テーブルはテーブルにマッピングされます。 - - PostgreSQL 列は列にマッピングされます。 - - - - MySQL のカタログ情報は ScalarDB Analytics によって自動的に解決されます。カタログレベルのオブジェクトは以下のようにマッピングされます: - - - MySQL データベースは名前空間にマッピングされます。したがって、MySQL データソースの名前空間は常に単一レベルで、データベース名のみで設定されます。 - - ユーザー定義データベースのみが名前空間にマッピングされます。以下のシステムデータベースは無視されます: - - `mysql` - - `sys` - - `information_schema` - - `performance_schema` - - MySQL テーブルはテーブルにマッピングされます。 - - MySQL 列は列にマッピングされます。 - - - - Oracle のカタログ情報は ScalarDB Analytics によって自動的に解決されます。カタログレベルのオブジェクトは以下のようにマッピングされます: - - - Oracle スキーマは名前空間にマッピングされます。したがって、Oracle データソースの名前空間は常に単一レベルで、スキーマ名のみで設定されます。 - - ユーザー定義スキーマのみが名前空間にマッピングされます。以下のシステムスキーマは無視されます: - - `ANONYMOUS` - - `APPQOSSYS` - - `AUDSYS` - - `CTXSYS` - - `DBSNMP` - - `DGPDB_INT` - - `DBSFWUSER` - - `DVF` - - `DVSYS` - - `GGSYS` - - `GSMADMIN_INTERNAL` - - `GSMCATUSER` - - `GSMROOTUSER` - - `GSMUSER` - - `LBACSYS` - - `MDSYS` - - `OJVMSYS` - - `ORDDATA` - - `ORDPLUGINS` - - `ORDSYS` - - `OUTLN` - - `REMOTE_SCHEDULER_AGENT` - - `SI_INFORMTN_SCHEMA` - - `SYS` - - `SYS$UMF` - - `SYSBACKUP` - - `SYSDG` - - `SYSKM` - - `SYSRAC` - - `SYSTEM` - - `WMSYS` - - `XDB` - - `DIP` - - `MDDATA` - - `ORACLE_OCM` - - `XS$NULL` - - - - SQL Server のカタログ情報は ScalarDB Analytics によって自動的に解決されます。カタログレベルのオブジェクトは以下のようにマッピングされます: - - - SQL Server データベースとスキーマは共に名前空間にマッピングされます。したがって、SQL Server データソースの名前空間は常に二段階で、データベース名とスキーマ名で構成されます。 - - ユーザー定義データベースのみが名前空間にマッピングされます。以下のシステムデータベースは無視されます: - - `sys` - - `guest` - - `INFORMATION_SCHEMA` - - `db_accessadmin` - - `db_backupoperator` - - `db_datareader` - - `db_datawriter` - - `db_ddladmin` - - `db_denydatareader` - - `db_denydatawriter` - - `db_owner` - - `db_securityadmin` - - ユーザー定義スキーマのみが名前空間にマッピングされます。以下のシステムスキーマは無視されます: - - `master` - - `model` - - `msdb` - - `tempdb` - - SQL Server テーブルはテーブルにマッピングされます。 - - SQL Server 列は列にマッピングされます。 - - - - DynamoDB はスキーマレスであるため、DynamoDB データソースを登録する際に以下のような形式のJSONを使用してカタログ情報を明示的に指定する必要があります: - - ```json - { - "namespaces": [ - { - "name": "", - "tables": [ - { - "name": "", - "columns": [ - { - "name": "", - "type": "" - }, - ... - ] - }, - ... - ] - }, - ... - ] - } - ``` - - 指定した JSON では、任意の名前空間名を使用できますが、テーブル名は DynamoDB のテーブル名と一致する必要があり、列名と型は DynamoDB のフィールド名と型と一致する必要があります。 - - - - -#### データ型マッピング - -基盤となるデータソースのネイティブデータ型は ScalarDB Analytics のデータ型にマッピングされます。各データソースでのデータ型マッピングを確認するには、データソースを選択してください。 - - - - | **ScalarDB データ型** | **ScalarDB Analytics データ型** | - |:------------------------------|:---------------------------------| - | `BOOLEAN` | `BOOLEAN` | - | `INT` | `INT` | - | `BIGINT` | `BIGINT` | - | `FLOAT` | `FLOAT` | - | `DOUBLE` | `DOUBLE` | - | `TEXT` | `TEXT` | - | `BLOB` | `BLOB` | - | `DATE` | `DATE` | - | `TIME` | `TIME` | - | `TIMESTAMP` | `TIMESTAMP` | - | `TIMESTAMPTZ` | `TIMESTAMPTZ` | - - - | **PostgreSQL データ型** | **ScalarDB Analytics データ型** | - |:------------------------------|:---------------------------------| - | `integer` | `INT` | - | `bigint` | `BIGINT` | - | `real` | `FLOAT` | - | `double precision` | `DOUBLE` | - | `smallserial` | `SMALLINT` | - | `serial` | `INT` | - | `bigserial` | `BIGINT` | - | `char` | `TEXT` | - | `varchar` | `TEXT` | - | `text` | `TEXT` | - | `bpchar` | `TEXT` | - | `boolean` | `BOOLEAN` | - | `bytea` | `BLOB` | - | `date` | `DATE` | - | `time` | `TIME` | - | `time with time zone` | `TIME` | - | `time without time zone` | `TIME` | - | `timestamp` | `TIMESTAMP` | - | `timestamp with time zone` | `TIMESTAMPTZ` | - | `timestamp without time zone` | `TIMESTAMP` | - - - | **MySQL データ型** | **ScalarDB Analytics データ型** | - |:-----------------------|:---------------------------------| - | `bit` | `BOOLEAN` | - | `bit(1)` | `BOOLEAN` | - | `bit(x)` if *x >= 2* | `BLOB` | - | `tinyint` | `SMALLINT` | - | `tinyint(1)` | `BOOLEAN` | - | `boolean` | `BOOLEAN` | - | `smallint` | `SMALLINT` | - | `smallint unsigned` | `INT` | - | `mediumint` | `INT` | - | `mediumint unsigned` | `INT` | - | `int` | `INT` | - | `int unsigned` | `BIGINT` | - | `bigint` | `BIGINT` | - | `float` | `FLOAT` | - | `double` | `DOUBLE` | - | `real` | `DOUBLE` | - | `char` | `TEXT` | - | `varchar` | `TEXT` | - | `text` | `TEXT` | - | `binary` | `BLOB` | - | `varbinary` | `BLOB` | - | `blob` | `BLOB` | - | `date` | `DATE` | - | `time` | `TIME` | - | `datetime` | `TIMESTAMP` | - | `timestamp` | `TIMESTAMPTZ` | - - - | **Oracle データ型** | **ScalarDB Analytics データ型** | - |:-----------------------------------|:---------------------------------| - | `NUMBER` if *scale = 0* | `BIGINT` | - | `NUMBER` if *scale > 0* | `DOUBLE` | - | `FLOAT` if *precision ≤ 53* | `DOUBLE` | - | `BINARY_FLOAT` | `FLOAT` | - | `BINARY_DOUBLE` | `DOUBLE` | - | `CHAR` | `TEXT` | - | `NCHAR` | `TEXT` | - | `VARCHAR2` | `TEXT` | - | `NVARCHAR2` | `TEXT` | - | `CLOB` | `TEXT` | - | `NCLOB` | `TEXT` | - | `BLOB` | `BLOB` | - | `BOOLEAN` | `BOOLEAN` | - | `DATE` | `DATE` | - | `TIMESTAMP` | `TIMESTAMPTZ` | - | `TIMESTAMP WITH TIME ZONE` | `TIMESTAMPTZ` | - | `TIMESTAMP WITH LOCAL TIME ZONE` | `TIMESTAMP` | - | `RAW` | `BLOB` | - - - | **SQL Server データ型** | **ScalarDB Analytics データ型** | - |:---------------------------|:---------------------------------| - | `bit` | `BOOLEAN` | - | `tinyint` | `SMALLINT` | - | `smallint` | `SMALLINT` | - | `int` | `INT` | - | `bigint` | `BIGINT` | - | `real` | `FLOAT` | - | `float` | `DOUBLE` | - | `float(n)` if *n ≤ 24* | `FLOAT` | - | `float(n)` if *n ≥ 25* | `DOUBLE` | - | `binary` | `BLOB` | - | `varbinary` | `BLOB` | - | `char` | `TEXT` | - | `varchar` | `TEXT` | - | `nchar` | `TEXT` | - | `nvarchar` | `TEXT` | - | `ntext` | `TEXT` | - | `text` | `TEXT` | - | `date` | `DATE` | - | `time` | `TIME` | - | `datetime` | `TIMESTAMP` | - | `datetime2` | `TIMESTAMP` | - | `smalldatetime` | `TIMESTAMP` | - | `datetimeoffset` | `TIMESTAMPTZ` | - - - | **DynamoDB データ型** | **ScalarDB Analytics データ型** | - |:-------------------------|:---------------------------------| - | `Number` | `BYTE` | - | `Number` | `SMALLINT` | - | `Number` | `INT` | - | `Number` | `BIGINT` | - | `Number` | `FLOAT` | - | `Number` | `DOUBLE` | - | `Number` | `DECIMAL` | - | `String` | `TEXT` | - | `Binary` | `BLOB` | - | `Boolean` | `BOOLEAN` | - -:::warning - -ScalarDB Analytics に指定されたデータ型として `Number` 型のフィールド値が解析可能であることが必要です。例えば、`Number` 型のフィールドに対応する列が `INT` 型として指定されている場合、その値は整数でなければなりません。値が整数でない場合、クエリの実行時にエラーが発生します。 - -::: - - - +これらのマッピングにより、異なるデータベースシステム間での互換性と一貫性が確保されます。特定のデータベースがどのようにマッピングされるかの詳細については、管理ガイドの [カタログメタデータリファレンス](administration.mdx#カタログメタデータリファレンス) を参照してください。 ## クエリエンジン diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/run-analytical-queries.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/run-analytical-queries.mdx index 08508927..9d6fc149 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/run-analytical-queries.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-analytics/run-analytical-queries.mdx @@ -4,11 +4,11 @@ tags: displayed_sidebar: docsJapanese --- -# ScalarDB Analytics を通じた分析クエリの実行 +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import TranslationBanner from "/src/components/_translation-ja-jp.mdx"; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; +# ScalarDB Analytics を通じた分析クエリの実行 @@ -22,7 +22,8 @@ ScalarDB Analytics は現在、実行エンジンとして Spark を使用し、 ### 前提条件 -ScalarDB Analytics は Apache Spark 3.4以降で動作します。まだ Spark をインストールしていない場合は、[Apache Spark のウェブサイト](https://spark.apache.org/downloads.html)から Spark ディストリビューションをダウンロードしてください。 +- **ScalarDB Analytics catalog server**: カタログメタデータを管理し、データソースに接続する実行中のインスタンス。サーバーには少なくとも1つのデータソースが登録されている必要があります。セットアップとデータソース登録の手順については、[ScalarDB Analytics catalog server のセットアップと管理](./administration.mdx)を参照してください。 +- **Apache Spark**: 互換性のあるバージョンの Apache Spark。サポートされているバージョンについては、[バージョン互換性](#バージョン互換性)を参照してください。まだ Spark をインストールしていない場合は、[Apache Spark のウェブサイト](https://spark.apache.org/downloads.html)から Spark ディストリビューションをダウンロードしてください。 :::note @@ -32,193 +33,63 @@ Apache Spark は Scala 2.12 または Scala 2.13 でビルドされています ### ScalarDB Analytics のセットアップのための Spark 設定 -以下のセクションでは、ScalarDB Analytics で利用可能なすべての設定オプションについて説明します。 - -- ScalarDB Analytics の Spark との統合方法 -- データソースの接続とアクセス方法 -- ライセンス情報の提供方法 - -実践的なシナリオでの設定例については、[サンプルアプリケーション設定](https://github.com/scalar-labs/scalardb-samples/blob/main/scalardb-analytics-sample/config/scalardb-analytics-server.properties)を参照してください。 - -#### Spark プラグインの設定 - -| 設定キー名 | 必須 | 説明 | -|:-----------------------------------|:------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `spark.jars.packages` | いいえ | 必要な依存関係の Maven 座標をカンマ区切りで指定します。使用する ScalarDB Analytics パッケージを含める必要があります。含めない場合は、Spark アプリケーションの実行時にコマンドライン引数として指定します。ScalarDB Analytics の Maven 座標の詳細については、[ScalarDB Analytics 依存関係の追加](#scalardb-analytics-依存関係の追加)を参照してください。 | -| `spark.sql.extensions` | はい | `com.scalar.db.analytics.spark.extension.ScalarDbAnalyticsExtensions` を設定する必要があります。 | -| `spark.sql.catalog.` | はい | `com.scalar.db.analytics.spark.ScalarDbAnalyticsCatalog` を設定する必要があります。 | - -`` には任意の名前を指定できます。設定全体で同じカタログ名を使用するようにしてください。 - -#### ライセンスの設定 - -| 設定キー名 | 必須 | 説明 | -|:-----------------------------------------------------|:-----|:------------------------------------------------------------------------------------------------------------------------| -| `spark.sql.catalog..license.key` | はい | ScalarDB Analytics のライセンスキーの JSON 文字列 | -| `spark.sql.catalog..license.cert_pem` | はい | ScalarDB Analytics ライセンスの PEM エンコードされた証明書の文字列。`cert_pem` または `cert_path` のいずれかを設定する必要があります。 | -| `spark.sql.catalog..license.cert_path` | はい | ScalarDB Analytics ライセンスの PEM エンコードされた証明書へのパス。`cert_pem` または `cert_path` のいずれかを設定する必要があります。 | - -#### データソースの設定 - -ScalarDB Analytics は複数のタイプのデータソースをサポートしています。各タイプには特定の設定パラメータが必要です: +ScalarDB Analytics は catalog server と統合するために特定の Spark 設定が必要です。 - - +#### 必要な Spark 設定 -:::note - -ScalarDB Analytics は ScalarDB をデータソースとしてサポートしています。この表では、ScalarDB をデータソースとして設定する方法について説明します。 - -::: - -| 設定キー名 | 必須 | 説明 | -|:------------------------------------------------------------------------------|:-----|:----------------------------| -| `spark.sql.catalog..data_source..type` | はい | 常に `scalardb` を設定します | -| `spark.sql.catalog..data_source..config_path` | はい | ScalarDB の設定ファイルへのパス | +ScalarDB Analytics を Spark で使用するには、以下を設定する必要があります: -:::tip - -`` には任意の名前を使用できます。 - -::: - - - +1. **ScalarDB Analytics パッケージ**: Spark と Scala のバージョンに一致する JAR 依存関係を追加 +2. **メータリングリスナー**: 課金のためのリソース使用状況を追跡するリスナーを登録 +3. **カタログ登録**: ScalarDB Analytics サーバーに接続する Spark カタログを登録 -| 設定キー名 | 必須 | 説明 | -|:---------------------------------------------------------------------------|:------|:-----------------------| -| `spark.sql.catalog..data_source..type` | はい | 常に `mysql` を設定します | -| `spark.sql.catalog..data_source..host` | はい | MySQL サーバーのホスト名 | -| `spark.sql.catalog..data_source..port` | はい | MySQL サーバーのポート番号 | -| `spark.sql.catalog..data_source..username` | はい | MySQL サーバーのユーザー名 | -| `spark.sql.catalog..data_source..password` | はい | MySQL サーバーのパスワード | -| `spark.sql.catalog..data_source..database` | いいえ | 接続するデータベースの名前 | +Spark を設定する際は、ScalarDB Analytics サーバー上で作成されたカタログと一致するカタログ名を指定する必要があります。これにより、Spark がそのカタログで管理されているデータソースに正しくアクセスできるようになります。 -:::tip - -`` には任意の名前を使用できます。 - -::: - - - - -| 設定キー名 | 必須 | 説明 | -|:---------------------------------------------------------------------------|:-----|:---------------------------------------------| -| `spark.sql.catalog..data_source..type` | はい | 常に `postgresql` または `postgres` を設定します | -| `spark.sql.catalog..data_source..host` | はい | PostgreSQL サーバーのホスト名 | -| `spark.sql.catalog..data_source..port` | はい | PostgreSQL サーバーのポート番号 | -| `spark.sql.catalog..data_source..username` | はい | PostgreSQL サーバーのユーザー名 | -| `spark.sql.catalog..data_source..password` | はい | PostgreSQL サーバーのパスワード | -| `spark.sql.catalog..data_source..database` | はい | 接続するデータベースの名前 | - -:::tip +#### 設定例 -`` には任意の名前を使用できます。 +以下は完全な設定例です: -::: +```conf +# 1. ScalarDB Analytics パッケージ +spark.jars.packages com.scalar-labs:scalardb-analytics-spark-all-_: - - +# 2. メータリングリスナー +spark.extraListeners com.scalar.db.analytics.spark.metering.ScalarDbAnalyticsListener -| 設定キー名 | 必須 | 説明 | -|:-------------------------------------------------------------------------------|:-----|:------------------------| -| `spark.sql.catalog..data_source..type` | はい | 常に `oracle` を設定します | -| `spark.sql.catalog..data_source..host` | はい | Oracle サーバーのホスト名 | -| `spark.sql.catalog..data_source..port` | はい | Oracle サーバーのポート番号 | -| `spark.sql.catalog..data_source..username` | はい | Oracle サーバーのユーザー名 | -| `spark.sql.catalog..data_source..password` | はい | Oracle サーバーのパスワード | -| `spark.sql.catalog..data_source..service_name` | はい | Oracle サーバーのサービス名 | +# 3. カタログ登録 +spark.sql.catalog.myanalytics com.scalar.db.analytics.spark.catalog.ScalarDBAnalyticsCatalog +spark.sql.catalog.myanalytics.server.host analytics-server.example.com +spark.sql.catalog.myanalytics.server.catalog.port 11051 +spark.sql.catalog.myanalytics.server.metering.port 11052 +``` -:::tip +プレースホルダーを置き換えてください: -`` には任意の名前を使用できます。 +- ``: 使用している Spark のバージョン (例: `3.5` または `3.4`) +- ``: 使用している Scala のバージョン (例: `2.13` または `2.12`) +- ``: ScalarDB Analytics のバージョン (例: `3.16.0`) -::: +この例では: - - - -| 設定キー名 | 必須 | 説明 | -|:---------------------------------------------------------------------------|:-------|:--------------------------------------------------------------------------------------------| -| `spark.sql.catalog..data_source..type` | はい | 常に `sqlserver` または `mssql` を設定します | -| `spark.sql.catalog..data_source..host` | はい | SQL Server のホスト名 | -| `spark.sql.catalog..data_source..port` | はい | SQL Server のポート番号 | -| `spark.sql.catalog..data_source..username` | はい | SQL Server のユーザー名 | -| `spark.sql.catalog..data_source..password` | はい | SQL Server のパスワード | -| `spark.sql.catalog..data_source..database` | いいえ | 接続するデータベースの名前 | -| `spark.sql.catalog..data_source..secure` | いいえ | SQL Server への接続にセキュアな接続を使用するかどうか。セキュアな接続を使用する場合は `true` を設定します。 | +- カタログ名 `myanalytics` は、ScalarDB Analytics サーバー上に存在するカタログと一致する必要があります +- ScalarDB Analytics サーバーは `analytics-server.example.com` で実行されています +- テーブルには `myanalytics...` の形式でアクセスします -:::tip +:::important -`` には任意の名前を使用できます。 +Spark 設定のカタログ名は、CLI を使用して ScalarDB Analytics サーバー上で作成されたカタログの名前と一致させる必要があります。たとえば、サーバー上で `production` という名前のカタログを作成した場合、Spark 設定プロパティでカタログ名として `production` を使用する必要があります(例:`spark.sql.catalog.production`、`spark.sql.catalog.production.server.host` など)。 ::: - - - -| 設定キー名 | 必須 | 説明 | -|:---------------------------------------------------------------------------|:--------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| -| `spark.sql.catalog..data_source..type` | はい | 常に `dynamodb` を設定します | -| `spark.sql.catalog..data_source..region` | `region` または `endpoint` のいずれかを設定する必要があります | DynamoDB インスタンスの AWS リージョン | -| `spark.sql.catalog..data_source..endpoint` | `region` または `endpoint` のいずれかを設定する必要があります | DynamoDB インスタンスの AWS エンドポイント | -| `spark.sql.catalog..data_source..schema` | はい | カタログのスキーマを表す JSON オブジェクト。形式の詳細については、[カタログレベルのマッピング](./design.mdx#カタログレベルのマッピング)を参照してください。 | - -:::tip +:::note -`` には任意の名前を使用できます。 +データソース設定は catalog server で管理されます。catalog server でのデータソースの設定方法については、[ScalarDB Analytics catalog server のセットアップと管理](./administration.mdx#configure-data-sources)を参照してください。 ::: - - - -#### 設定例 - -以下は、複数のデータソースを持つ `scalardb` という名前のカタログを設定する ScalarDB Analytics の設定例です: - -```conf -# Sparkプラグインの設定 -spark.jars.packages com.scalar-labs:scalardb-analytics-spark-all-_: -spark.sql.extensions com.scalar.db.analytics.spark.extension.ScalarDbAnalyticsExtensions -spark.sql.catalog.scalardb com.scalar.db.analytics.spark.ScalarDbAnalyticsCatalog - -# ライセンスの設定 -spark.sql.catalog.scalardb.license.key -spark.sql.catalog.scalardb.license.cert_pem - -# データソースの設定 -spark.sql.catalog.scalardb.data_source.scalardb.type scalardb -spark.sql.catalog.scalardb.data_source.scalardb.config_path /path/to/scalardb.properties - -spark.sql.catalog.scalardb.data_source.mysql_source.type mysql -spark.sql.catalog.scalardb.data_source.mysql_source.host localhost -spark.sql.catalog.scalardb.data_source.mysql_source.port 3306 -spark.sql.catalog.scalardb.data_source.mysql_source.username root -spark.sql.catalog.scalardb.data_source.mysql_source.password password -spark.sql.catalog.scalardb.data_source.mysql_source.database mydb -``` - -括弧内の内容は以下のように変更する必要があります: - -- ``: ScalarDB Analytics のライセンスキー -- ``: ScalarDB Analytics ライセンスの PEM エンコードされた証明書 -- ``: 使用している Spark のメジャーおよびマイナーバージョン (例: 3.4) -- ``: Spark インストールに対応する Scala のメジャーおよびマイナーバージョン (例: 2.12 または 2.13) -- ``: ScalarDB Analytics のバージョン - -### ScalarDB Analytics 依存関係の追加 - -ScalarDB Analytics は Maven Central Repository でホストされています。パッケージ名は `scalardb-analytics-spark-all-_:` で、以下の通りです: - -- ``: 使用している Spark のメジャーおよびマイナーバージョン (例: 3.4) -- ``: Spark インストールに対応する Scala のメジャーおよびマイナーバージョン (例: 2.12 または 2.13) -- ``: ScalarDB Analytics のバージョン +### Spark アプリケーションのビルド設定 -バージョンの互換性の詳細については、[バージョン互換性](#バージョン互換性)を参照してください。 - -プロジェクトのビルド設定を設定することで、この依存関係をプロジェクトに追加できます。例えば、Gradle を使用している場合は、`build.gradle` ファイルに以下を追加できます: +ScalarDB Analytics を使用する Spark アプリケーションを開発する際は、ビルド設定に依存関係を追加できます。たとえば Gradle の場合: ```groovy dependencies { @@ -228,7 +99,7 @@ dependencies { :::note -Gradle の Shadow プラグインや Maven の Shade プラグインなどを使用して、アプリケーションを単一の fat JAR ファイルにバンドルする場合は、使用しているプラグインに応じて `provided` や `shadow` などの適切な configuration を選択して、fat JAR ファイルから ScalarDB Analytics を除外する必要があります。 +Gradle Shadow や Maven Shade などのプラグインを使用してアプリケーションを fat JAR にバンドルする場合は、`provided` や `shadow` などの設定を使用して fat JAR から ScalarDB Analytics を除外してください。 ::: @@ -248,7 +119,7 @@ ScalarDB Analytics を使用した Spark アプリケーションの開発には ::: -これらのすべての方法で、同じテーブル識別子形式を使用して ScalarDB Analytics のテーブルを参照できます。ScalarDB Analytics がデータソースからカタログ情報をマッピングする方法の詳細については、[データソース別のカタログ情報マッピング](./design.mdx#データソース別のカタログ情報マッピング)を参照してください。 +これらのすべての方法で、同じテーブル識別子形式を使用して ScalarDB Analytics のテーブルを参照できます。ScalarDB Analytics がデータソースからカタログ情報をマッピングする方法の詳細については、[カタログメタデータリファレンス](./administration.mdx#catalog-metadata-reference)を参照してください。 @@ -369,13 +240,9 @@ ScalarDB Analytics は、データソース、名前空間、テーブル、列 データソース内の情報が ScalarDB Analytics カタログにマッピングされる方法の詳細については、[データソース別のカタログ情報マッピング](./design.mdx#データソース別のカタログ情報マッピング)を参照してください。 -### カタログレベルのマッピング - -ScalarDB Analytics カタログの各カタログレベルオブジェクトは、Spark カタログにマッピングされます。以下の表は、カタログレベルがどのようにマッピングされるかを示しています: - -#### データソーステーブル +### カタログ構造のマッピング -ScalarDB Analytics カタログのデータソースのテーブルは、Spark テーブルにマッピングされます。ScalarDB Analytics テーブルに対応する Spark テーブルの識別子には以下の形式が使用されます: +ScalarDB Analytics は、データソースからのカタログ構造を Spark カタログにマッピングします。ScalarDB Analytics カタログのデータソースのテーブルは、Spark テーブルにマッピングされ、以下の形式で識別されます: ```console ... @@ -390,56 +257,28 @@ ScalarDB Analytics カタログのデータソースのテーブルは、Spark 例えば、`my_catalog` という名前の ScalarDB カタログに、`my_data_source` という名前のデータソースと `my_schema` という名前のスキーマがある場合、そのスキーマ内の `my_table` という名前のテーブルを `my_catalog.my_data_source.my_schema.my_table` として参照できます。 -#### ビュー - -ScalarDB Analytics のビューは、ビューではなく Spark カタログのテーブルとして提供されます。ScalarDB Analytics ビューに対応する Spark テーブルの識別子には以下の形式が使用されます: - -```console -.view.. -``` - -括弧内の内容は以下の通りです: - -- ``: カタログの名前 -- ``: ビュー名前空間の名前。ビュー名前空間が複数レベルある場合は、ドット (`.`) で区切って連結されます -- ``: ビューの名前 - -例えば、`my_catalog` という名前の ScalarDB カタログと `my_view_namespace` という名前のビュー名前空間がある場合、その名前空間内の `my_view` という名前のビューを `my_catalog.view.my_view_namespace.my_view` として参照できます。 - -:::note - -データソーステーブル識別子との競合を避けるため、`view` が接頭辞として付けられます。 - -::: - -##### WAL 解釈ビュー - -[ScalarDB Analytics の設計](./design.mdx)で説明されているように、ScalarDB Analytics は WAL 解釈ビューと呼ばれる特別なタイプのビューを提供します。これらのビューは、ScalarDB データソースのテーブルに対して自動的に作成され、テーブル内の WAL メタデータを解釈することでユーザーフレンドリーなビューを提供します。 - -元の ScalarDB テーブルのデータソース名と名前空間の名前が WAL 解釈ビューのビュー名前空間の名前として使用されるため、`my_data_source` という名前のデータソースの `my_namespace` という名前の名前空間にある `my_table` という名前の ScalarDB テーブルがある場合、そのテーブルの WAL 解釈ビューを `my_catalog.view.my_data_source.my_namespace.my_table` として参照できます。 - ### データ型マッピング ScalarDB Analytics は、カタログ内のデータ型を Spark データ型にマッピングします。以下の表は、データ型がどのようにマッピングされるかを示しています: -| ScalarDB データ型 | Spark データ型 | -|:----------------|:-------------------| -| `BYTE` | `Byte` | -| `SMALLINT` | `Short` | -| `INT` | `Integer` | -| `BIGINT` | `Long` | -| `FLOAT` | `Float` | -| `DOUBLE` | `Double` | -| `DECIMAL` | `Decimal` | -| `TEXT` | `String` | -| `BLOB` | `Binary` | -| `BOOLEAN` | `Boolean` | -| `DATE` | `Date` | -| `TIME` | `TimestampNTZ` | -| `TIMESTAMP` | `TimestampNTZ` | -| `TIMESTAMPTZ` | `Timestamp` | -| `DURATION` | `CalendarInterval` | -| `INTERVAL` | `CalendarInterval` | +| ScalarDB データ型 | Spark データ型 | +| :---------------- | :----------------- | +| `BYTE` | `Byte` | +| `SMALLINT` | `Short` | +| `INT` | `Integer` | +| `BIGINT` | `Long` | +| `FLOAT` | `Float` | +| `DOUBLE` | `Double` | +| `DECIMAL` | `Decimal` | +| `TEXT` | `String` | +| `BLOB` | `Binary` | +| `BOOLEAN` | `Boolean` | +| `DATE` | `Date` | +| `TIME` | `TimestampNTZ` | +| `TIMESTAMP` | `TimestampNTZ` | +| `TIMESTAMPTZ` | `Timestamp` | +| `DURATION` | `CalendarInterval` | +| `INTERVAL` | `CalendarInterval` | ## バージョン互換性 @@ -450,6 +289,6 @@ Java バージョンに関しては、ScalarDB Analytics は Java 8以降をサ 以下は、ScalarDB Analytics の各バージョンでサポートされている Spark と Scalar のバージョンのリストです。 | ScalarDB Analytics バージョン | ScalarDB バージョン | サポートされている Spark バージョン | サポートされている Scala バージョン | 最小 Java バージョン | -|:----------------------------|:------------------|:-------------------------------|:-------------------------------|:-------------------| -| 3.16 | 3.16 | 3.5, 3.4 | 2.13, 2.12 | 8 | -| 3.15 | 3.15 | 3.5, 3.4 | 2.13, 2.12 | 8 | +| :---------------------------- | :------------------ | :---------------------------------- | :---------------------------------- | :------------------- | +| 3.16 | 3.16 | 3.5, 3.4 | 2.13, 2.12 | 8 | +| 3.15 | 3.15 | 3.5, 3.4 | 2.13, 2.12 | 8 | diff --git a/sidebars.js b/sidebars.js index 0e636b8b..c20f5dae 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1457,11 +1457,6 @@ const sidebars = { label: '分析', collapsible: true, items: [ - { - type: 'doc', - id: 'scalardb-analytics/README', - label: '概要', - }, { type: 'doc', id: 'scalardb-analytics-postgresql/scalardb-fdw',