Skip to content

Commit 13382ec

Browse files
AUTO: Docs repo sync - ScalarDL (#1084)
* Add `abstraction` to HashStore/TableStore/Ledger mentions * Add `abstraction` to Ledger mentions * Change `Write an app` from `in Java` to ` with Ledger Abstraction` * Add `abstraction` to HashStore/TableStore mentions * Fix grammar in "write application" doc labels * Revise wording based on discussion Revise wording based on discussion in ScalarDL docs meeting today. * AUTO: Sync ScalarDL docs in Japanese to docs site repo * Show docs for writing apps with HashStore/TableStore --------- Co-authored-by: Josh Wong <[email protected]> Co-authored-by: josh-wong <[email protected]>
1 parent 3a17032 commit 13382ec

File tree

16 files changed

+265
-34
lines changed

16 files changed

+265
-34
lines changed

i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/develop-write-an-application-overview.mdx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx';
1515

1616
アプリケーションの書き方の詳細については、以下のガイドをご覧ください:
1717

18-
- [Java で ScalarDL アプリケーションを書く](how-to-write-applications.mdx)
19-
- [汎用コントラクトを用いた ScalarDL アプリケーションを書く](how-to-write-applications-with-generic-contracts.mdx)
18+
- [HashStore 抽象化を使用して ScalarDL アプリケーションを書く](how-to-write-applications-with-hashstore.mdx)
19+
- [TableStore 抽象化を使用して ScalarDL アプリケーションを書く](how-to-write-applications-with-tablestore.mdx)
20+
- [Ledger 抽象化を使用して ScalarDL アプリケーションを書く](how-to-write-applications.mdx)
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
tags:
3+
- Community
4+
- Enterprise
5+
displayed_sidebar: docsJapanese
6+
---
7+
8+
# HashStore 抽象化を使用して ScalarDL アプリケーションを書く
9+
10+
import TranslationBanner from '/src/components/_translation-ja-jp.mdx';
11+
12+
<TranslationBanner />
13+
14+
import JavadocLink from "/src/theme/JavadocLink.js";
15+
16+
このドキュメントでは、HashStore 抽象化を使用して ScalarDL アプリケーションを作成する方法について説明します。アプリケーションで ScalarDL HashStore を使用する方法、エラーを処理する方法、データを検証する方法について学習します。
17+
18+
## ScalarDL HashStore Client SDK の使用
19+
20+
ScalarDL HashStore を使用するには、次の2つのオプションがあります:
21+
22+
- [Get Started with ScalarDL HashStore](getting-started-hashstore.mdx) で示されているように[コマンド](scalardl-hashstore-command-reference.mdx)を使用する
23+
- [HashStore Java Client SDK](https://javadoc.io/doc/com.scalar-labs/scalardl-hashstore-java-client-sdk/) を使用する
24+
25+
コマンドの使用は、アプリケーションを作成せずに HashStore を試す便利な方法です。ただし、HashStore ベースのアプリケーションを構築する場合は、各操作で個別のプロセスを起動することなく、より効率的に動作する HashStore Client SDK が推奨されます。
26+
27+
HashStore Client SDK は [Maven Central](https://central.sonatype.com/artifact/com.scalar-labs/scalardl-hashstore-java-client-sdk) で利用できます。Gradle などのビルドツールを使用して、アプリケーションにインストールできます。たとえば、Gradle では、次の依存関係を `build.gradle` に追加できます。`VERSION` は使用したい ScalarDL のバージョンに置き換えてください。
28+
29+
```gradle
30+
dependencies {
31+
implementation group: 'com.scalar-labs', name: 'scalardl-hashstore-java-client-sdk', version: '<VERSION>'
32+
}
33+
```
34+
35+
HashStore の Client SDK API は、<JavadocLink packageName="scalardl-hashstore-java-client-sdk" path="com/scalar/dl/hashstore/client/service" className="HashStoreClientService" /> というサービスクラスによって提供されます。以下は、`HashStoreClientService` を使用してオブジェクトとコレクションを管理する方法を示すコードスニペットです。`HashStoreClientService` は、[ScalarDL HashStore をはじめよう](getting-started-hashstore.mdx)で示された HashStore クライアントコマンドと同じ機能を提供します。
36+
37+
```java
38+
// HashStoreClientServiceFactory は常に再利用する必要があります。
39+
HashStoreClientServiceFactory factory = new HashStoreClientServiceFactory();
40+
41+
// HashStoreClientServiceFactory は create メソッドの呼び出しごとに新しい HashStoreClientService オブジェクトを作成しますが、
42+
// パフォーマンスとリソース使用量を向上させるために、内部オブジェクトと接続をできるだけ再利用します。
43+
HashStoreClientService service = factory.create(new ClientConfig(new File(properties)));
44+
try {
45+
// メタデータと共にオブジェクトのハッシュ値を格納します。
46+
String objectId = ...;
47+
String hash = ...;
48+
JsonNode metadata = ...;
49+
ExecutionResult result = service.putObject(objectId, hash, metadata);
50+
} catch (ClientException e) {
51+
System.err.println(e.getStatusCode());
52+
System.err.println(e.getMessage());
53+
}
54+
55+
factory.close();
56+
```
57+
58+
:::note
59+
60+
`HashStoreClientService` オブジェクトを作成するには、常に `HashStoreClientServiceFactory` を使用する必要があります。`HashStoreClientServiceFactory``HashStoreClientService` の作成に必要なオブジェクトをキャッシュし、指定された設定に基づいてそれらを再利用するため、`HashStoreClientServiceFactory` オブジェクトは常に再利用する必要があります。
61+
62+
:::
63+
64+
`HashStoreClientServiceFactory``HashStoreClientService` の詳細については、[`scalardl-hashstore-java-client-sdk` Javadoc](https://javadoc.io/doc/com.scalar-labs/scalardl-hashstore-java-client-sdk/latest/index.html) を参照してください。
65+
66+
## エラーの処理
67+
68+
アプリケーションでエラーが発生した場合、Client SDK はステータスコードとエラーコードを含むエラーメッセージを持つ例外を返します。エラーの原因を特定するには、ステータスコードとエラーコードを確認する必要があります。ステータスコードとエラーコードの詳細については、[ステータスコード](how-to-write-applications.mdx#ステータスコード)[エラーコード](how-to-write-applications.mdx#エラーコード)を参照してください。
69+
70+
### エラー処理の実装
71+
72+
エラーが発生すると、SDK は <JavadocLink packageName="scalardl-java-client-sdk" path="com/scalar/dl/client/exception" className="ClientException" /> をスローします。次のように例外をキャッチしてエラーを処理できます:
73+
74+
```java
75+
HashStoreClientService service = ...;
76+
try {
77+
// HashStoreClientService オブジェクトを通じて ScalarDL HashStore とやり取りする
78+
} catch (ClientException e) {
79+
// e.getStatusCode() はエラーのステータスを返す
80+
}
81+
```
82+
83+
## データの検証
84+
85+
ScalarDL では、すべてのデータが有効な状態であることを確認するために、データを検証する必要があることがあります。ScalarDL がデータを検証する方法の基本については [Java で ScalarDL アプリケーションを書く](how-to-write-applications.mdx#データを検証する)で学習できるため、このセクションでは主に HashStore で検証を実行する方法について説明します。
86+
87+
HashStore で [アセット](data-modeling.mdx#アセット) (ここではオブジェクトとコレクション) を検証する場合、オブジェクト ID またはコレクション ID のみを指定する必要があります。オブジェクトを検証するコード例は次のとおりです:
88+
89+
```java
90+
HashStoreClientService service = ...
91+
try {
92+
LedgerValidationResult result = service.validateObject("an_object_ID");
93+
// 世代範囲を指定することもできます。
94+
// LedgerValidationResult result = service.validateObject("an_object_ID", startAge, endAge);
95+
} catch (ClientException e) {
96+
}
97+
```
98+
99+
コレクションを検証するコード例は次のとおりです:
100+
101+
```java
102+
HashStoreClientService service = ...
103+
try {
104+
LedgerValidationResult result = service.validateCollection("a_collection_ID");
105+
// 世代範囲を指定することもできます。
106+
// LedgerValidationResult result = service.validateCollection("a_collection_ID", startAge, endAge);
107+
} catch (ClientException e) {
108+
}
109+
```
110+
111+
:::note
112+
113+
HashStore は内部的に、オブジェクトまたはコレクションを表すアセットに専用のアセット ID を割り当てます。アセット ID は、アセットタイプを示すプレフィックスとキーで構成されます。たとえば、オブジェクトにはプレフィックス `o_` とオブジェクト ID が、コレクションにはプレフィックス `c_` とコレクション ID が使用されます。これらの生のアセット ID は、`LedgerValidationResult``AssetProof` で確認できます。
114+
115+
:::
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
tags:
3+
- Community
4+
- Enterprise
5+
displayed_sidebar: docsJapanese
6+
---
7+
8+
# TableStore 抽象化を使用して ScalarDL アプリケーションを書く
9+
10+
import TranslationBanner from '/src/components/_translation-ja-jp.mdx';
11+
12+
<TranslationBanner />
13+
14+
import JavadocLink from "/src/theme/JavadocLink.js";
15+
16+
このドキュメントでは、TableStore 抽象化を使用して ScalarDL アプリケーションを作成する方法について説明します。アプリケーションで ScalarDL TableStore を使用する方法、エラーを処理する方法、データを検証する方法について学習します。
17+
18+
## ScalarDL TableStore Client SDK の使用
19+
20+
ScalarDL TableStore を使用するには、次の2つのオプションがあります:
21+
22+
- [ScalarDL TableStore をはじめよう](getting-started-tablestore.mdx)で示されているように[コマンド](scalardl-tablestore-command-reference.mdx)を使用する
23+
- [TableStore Java Client SDK](https://javadoc.io/doc/com.scalar-labs/scalardl-tablestore-java-client-sdk/) を使用する
24+
25+
コマンドの使用は、アプリケーションを作成せずに TableStore を試す便利な方法です。ただし、TableStore ベースのアプリケーションを構築する場合は、各操作で個別のプロセスを起動することなく、より効率的に動作する TableStore Client SDK が推奨されます。
26+
27+
TableStore Client SDK は [Maven Central](https://central.sonatype.com/artifact/com.scalar-labs/scalardl-tablestore-java-client-sdk) で利用できます。Gradle などのビルドツールを使用して、アプリケーションにインストールできます。たとえば、Gradle では、次の依存関係を `build.gradle` に追加できます。`VERSION` は使用したい ScalarDL のバージョンに置き換えてください。
28+
29+
```gradle
30+
dependencies {
31+
implementation group: 'com.scalar-labs', name: 'scalardl-tablestore-java-client-sdk', version: '<VERSION>'
32+
}
33+
```
34+
35+
TableStore の Client SDK API は、<JavadocLink packageName="scalardl-tablestore-java-client-sdk" path="com/scalar/dl/tablestore/client/service" className="TableStoreClientService" /> というサービスクラスによって提供されます。以下は、`TableStoreClientService` を使用してテーブルの真正性を管理する方法を示すコードスニペットです。`TableStoreClientService` は、[ScalarDL TableStore をはじめよう](getting-started-tablestore.mdx)で示された TableStore クライアントコマンドと同じ機能を提供します。
36+
37+
```java
38+
// TableStoreClientServiceFactory は常に再利用する必要があります。
39+
TableStoreClientServiceFactory factory = new TableStoreClientServiceFactory();
40+
41+
// TableStoreClientServiceFactory は create メソッドの呼び出しごとに新しい TableStoreClientService オブジェクトを作成しますが、
42+
// パフォーマンスとリソース使用量を向上させるために、内部オブジェクトと接続をできるだけ再利用します。
43+
TableStoreClientService service = factory.create(new ClientConfig(new File(properties)));
44+
try {
45+
// SQL ステートメントを実行します。
46+
String sql = "SELECT * FROM employee WHERE id = '1001'";
47+
ExecutionResult result = service.executeStatement(sql);
48+
result.getResult().ifPresent(System.out::println);
49+
} catch (ClientException e) {
50+
System.err.println(e.getStatusCode());
51+
System.err.println(e.getMessage());
52+
}
53+
54+
factory.close();
55+
```
56+
57+
:::note
58+
59+
`TableStoreClientService` オブジェクトを作成するには、常に `TableStoreClientServiceFactory` を使用する必要があります。`TableStoreClientServiceFactory``TableStoreClientService` の作成に必要なオブジェクトをキャッシュし、指定された設定に基づいてそれらを再利用するため、`TableStoreClientServiceFactory` オブジェクトは常に再利用する必要があります。
60+
61+
:::
62+
63+
`TableStoreClientServiceFactory``TableStoreClientService` の詳細については、[`scalardl-tablestore-java-client-sdk` Javadoc](https://javadoc.io/doc/com.scalar-labs/scalardl-tablestore-java-client-sdk/latest/index.html) を参照してください。
64+
65+
## エラーの処理
66+
67+
アプリケーションでエラーが発生した場合、Client SDK はステータスコードとエラーコードを含むエラーメッセージを持つ例外を返します。エラーの原因を特定するには、ステータスコードとエラーコードを確認する必要があります。ステータスコードとエラーコードの詳細については、[ステータスコード](how-to-write-applications.mdx#ステータスコード)[エラーコード](how-to-write-applications.mdx#エラーコード)を参照してください。
68+
69+
### エラー処理の実装
70+
71+
エラーが発生すると、SDK は <JavadocLink packageName="scalardl-java-client-sdk" path="com/scalar/dl/client/exception" className="ClientException" /> をスローします。次のように例外をキャッチしてエラーを処理できます:
72+
73+
```java
74+
TableStoreClientService service = ...;
75+
try {
76+
// TableStoreClientService オブジェクトを通じて ScalarDL TableStore とやり取りする
77+
} catch (ClientException e) {
78+
// e.getStatusCode() はエラーのステータスを返す
79+
}
80+
```
81+
82+
## データの検証
83+
84+
ScalarDL では、すべてのデータが有効な状態であることを確認するために、データを検証する必要があることがあります。ScalarDL がデータを検証する方法の基本については[Java で ScalarDL アプリケーションを書く](how-to-write-applications.mdx#データを検証する)で学習できるため、このセクションでは主に TableStore で検証を実行する方法について説明します。
85+
86+
TableStore で [アセット](data-modeling.mdx#アセット) (ここではレコード、インデックスレコード、テーブルスキーマ) を検証する場合、テーブルと、必要に応じてプライマリキーまたはインデックスキーを指定する必要があります。TableStore でアセットを検証するコード例は次のとおりです:
87+
88+
```java
89+
TableStoreClientService service = ...
90+
String tableName = "employee";
91+
String primaryKeyColumn = "id";
92+
String indexKeyColumn = "department";
93+
TextNode primaryKeyValue = TextNode.valueOf("1001");
94+
TextNode indexKeyValue = TextNode.valueOf("sales");
95+
try {
96+
LedgerValidationResult result1 =
97+
service.validateRecord(tableName, primaryKeyColumn, primaryKeyValue);
98+
LedgerValidationResult result2 =
99+
service.validateIndexRecord(tableName, indexKeyColumn, indexKeyValue);
100+
LedgerValidationResult result3 = service.validateTableSchema(tableName);
101+
// 世代範囲を指定することもできます。
102+
// LedgerValidationResult result1 =
103+
// service.validateRecord(tableName, primaryKeyColumn, primaryKeyValue, startAge, endAge);
104+
// LedgerValidationResult result2 =
105+
// service.validateIndexRecord(tableName, indexKeyColumn, indexKeyValue, startAge, endAge);
106+
// LedgerValidationResult result3 = service.validateTableSchema(tableName, startAge, endAge);
107+
} catch (ClientException e) {
108+
}
109+
```
110+
111+
:::note
112+
113+
TableStore は内部的に、レコード、インデックスレコード、テーブルスキーマを表すアセットに専用のアセット ID を割り当てます。アセット ID は、アセットタイプを示すプレフィックスとキーで構成されます。たとえば、レコードのアセット ID にはプレフィックス `rec_`、プライマリキー列名、プライマリキー値が使用されます。これらの生のアセット ID は、`LedgerValidationResult``AssetProof` で確認できます。
114+
115+
:::

i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/how-to-write-applications.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ tags:
55
displayed_sidebar: docsJapanese
66
---
77

8-
# Java で ScalarDL アプリケーションを書く
8+
# Ledger 抽象化を使用して ScalarDL アプリケーションを書く
99

1010
import JavadocLink from "/src/theme/JavadocLink.js";
1111
import TranslationBanner from '/src/components/_translation-ja-jp.mdx';
1212

1313
<TranslationBanner />
1414

15-
このドキュメントでは、ScalarDL アプリケーションの作成方法について説明します。ScalarDL をアプリケーションに統合し、エラーを処理し、データを検証する方法を学習します。
15+
このドキュメントでは、Ledger 抽象化を使用して ScalarDL アプリケーションを作成する方法について説明します。ScalarDL をアプリケーションに統合し、エラーを処理し、データを検証する方法を学習します。
1616

1717
## ScalarDL Client SDK を使用する
1818

sidebars.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ const sidebars = {
154154
{
155155
type: 'doc',
156156
id: 'how-to-write-applications',
157-
label: 'Write an Application in Java',
157+
label: 'Write an Application with Ledger',
158158
},
159159
]
160160
},
@@ -770,20 +770,20 @@ const sidebars = {
770770
id: 'develop-write-an-application-overview',
771771
},
772772
items: [
773-
// {
774-
// type: 'doc',
775-
// id: 'how-to-write-applications-with-hashstore',
776-
// label: 'HashStore を使用したアプリケーションを書く',
777-
// },
778-
// {
779-
// type: 'doc',
780-
// id: 'how-to-write-applications-with-tablestore',
781-
// label: 'TableStore を使用したアプリケーションを書く',
782-
// },
773+
{
774+
type: 'doc',
775+
id: 'how-to-write-applications-with-hashstore',
776+
label: 'HashStore を使用してアプリケーションを書く',
777+
},
778+
{
779+
type: 'doc',
780+
id: 'how-to-write-applications-with-tablestore',
781+
label: 'TableStore を使用してアプリケーションを書く',
782+
},
783783
{
784784
type: 'doc',
785785
id: 'how-to-write-applications',
786-
label: 'Java でアプリケーションを書く',
786+
label: 'Ledger を使用してアプリケーションを書く',
787787
},
788788
]
789789
},

src/components/Cards/3.10.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ const categories = [
105105
{
106106
cell: 2, // Third cell
107107
links: ['how-to-write-applications'],
108-
labels: ['Write a ScalarDL Application in Java']
108+
labels: ['Write a ScalarDL Application with the Ledger Abstraction']
109109
}
110110
]
111111
},

src/components/Cards/3.11.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ const categories = [
105105
{
106106
cell: 2, // Third cell
107107
links: ['how-to-write-applications'],
108-
labels: ['Write a ScalarDL Application in Java']
108+
labels: ['Write a ScalarDL Application with the Ledger Abstraction']
109109
}
110110
]
111111
},

0 commit comments

Comments
 (0)