Skip to content

Commit 04ead2d

Browse files
committed
docs(tsubakuro-rust-core): updated blob_ja.md
1 parent c5c56cc commit 04ead2d

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

tsubakuro-rust-core/docs/blob_ja.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
Tsurugiでは、(メモリーに載せるのが躊躇われるような)大きなサイズのデータをBLOB, CLOB型で扱います。
88
BLOB(binary large object)はバイト列、CLOB(character large object)は文字列が対象です。
99

10-
TsurugiはインメモリーDBなので、基本的にデータは全てDBサーバーのメモリー上に置くのですが、BLOB, CLOBのデータはメモリー上には置かず、データごとに個別のファイルとして保存されます
10+
以降、BLOB, CLOBを共通で扱う場合は large object(LOB)という用語を用います
1111

12-
クライアント(tsubakuro-rust-core)とTsurugi DBの間でBLOB, CLOBデータを受け渡す方法はいくつかあり、どの方法を使うかはクライアントアプリケーション(tsubakuro-rust-coreを利用するアプリケーション)側で指定することができますが、データを受け渡すAPI(コーディング方法)は同一です
12+
TsurugiはインメモリーDBなので、基本的にデータは全てDBサーバーのメモリー上に置くのですが、LOBデータはメモリー上には置かず、データごとに個別のファイルとして保存されます
1313

14-
## LOB転送モード
14+
クライアント(tsubakuro-rust-core)とTsurugi DBの間でLOBデータを受け渡す方法はいくつかあり、どの方法を使うかはクライアントアプリケーション(tsubakuro-rust-coreを利用するアプリケーション)側で指定することができますが、データを受け渡すAPI(コーディング方法)は同一です。(ただし、LOB転送モードによっては使用できないメソッドもあります)
1515

16-
tsubakuro-rust-coreでは、BLOB, CLOBを共通で扱う場合は large object(LOB)という用語を用います。
16+
## LOB転送モード
1717

1818
クライアント(tsubakuro-rust-core)とTsurugi DBの間でLOBデータを受け渡す方法(LOB転送を行う方法)は、LOB転送モードと呼びます。
1919

@@ -22,7 +22,7 @@ LOB転送モードには以下のようなものがあります。
2222
### 特権モード
2323

2424
特権モードでは、クライアントアプリケーションとTsurugi DBの間でのLOBデータの受け渡しをファイル経由で行います。
25-
すなわち、LOBデータをDBに登録する際は、ユーザー(クライアントアプリケーション)がLOBデータのファイルを用意し、そのファイルのパスをTsurugi DBに渡します(Tsurugi DBは渡されたパスのファイルをコピーします)。
25+
すなわち、LOBデータをDBに登録する際は、ユーザー(クライアントアプリケーション)がLOBデータのファイルを用意し、tsubakuro-rust-core経由でそのファイルのパスをTsurugi DBに渡します(Tsurugi DBは渡されたパスのファイルをコピーします)。
2626
DBからLOBデータを取得する際も、DB内で保持されているファイルのパスが返るので、そのファイルを読むことになります(ユーザーに対しては、ファイルのパスは隠蔽されます)。
2727

2828
このように特権モードではLOBデータをファイルで受け渡しするため、クライアントアプリケーションはTsurugi DBと同じサーバー上で実行する必要があります。
@@ -93,9 +93,11 @@ tsubakuro-rust-coreにおけるCLOBの操作方法はBLOBと同等ですので
9393

9494
SqlClientのBLOB関連メソッドを以下に示します。
9595

96+
メソッドの使用方法については [API ドキュメント](https://docs.rs/tsubakuro-rust-core/latest/tsubakuro_rust_core/prelude/struct.SqlClient.html) を参照してください。
97+
9698
| メソッド | 説明 |
9799
| ------------------------------------------------------------ | ------------------------------------------------------------ |
98-
| `async fn allows_lob_operation(&self, operation: LobOperation) -> Result<bool, TgError>` | 現在のLOB転送モードでBLOB関連メソッドが使用できるかどうかを返す。 |
100+
| `async fn allows_lob_operation(&self, operation: LobOperation) -> Result<bool, TgError>` | 現在のLOB転送モードでBLOB関連メソッドが使用できるかどうかを返す。(引数のoperationで対象メソッドを指定する) |
99101
| `async fn upload_blob_file(&self, path: &Path) -> Result<TgBlob, TgError>` | BLOBファイルのパスを指定してアップロードする。 |
100102
| `async fn upload_blob(&self, value: &[u8]) -> Result<TgBlob, TgError>` | BLOBデータをアップロードする。<br />(特権モードでは使用不可) |
101103
| `async fn create_blob_uploader(&self) -> Result<BlobUploader, TgError>` | アップローダーを作成する。(BLOBデータをチャンクに分けてアップロードできる)<br />(特権モードでは使用不可) |
@@ -176,13 +178,13 @@ select文の実行結果からBLOBを取得する手順は以下のようにな
176178

177179
### 特権モードのパスマッピング
178180

179-
特権モードでLOBファイルを扱う際にクライアント側のパスとサーバー側のパスを変換する機能がパスマッピングです
181+
tsubakuro-rust-coreでは、特権モードでLOBファイルを扱う際にクライアント側のパスとサーバー側のパスを変換するパスマッピング機能を提供しています
180182

181183
特権モードでLOBファイルを扱う場合、クライアントとサーバーが同一ファイルシステムにアクセスできることを前提としていますが、環境によってはクライアントとサーバーのパスが一致しないことがあります。
182184
このとき、パスマッピングを設定することで、LOBファイルのパスをクライアントからサーバーに送信する際にクライアント側のパスがサーバー側のパスに変換されます。同様に、サーバーからファイルのパスを受信した際にクライアント側のパスに変換されます。
183185

184186
例えば以下のようにMS-Windows上のTsurugiのDockerでボリュームマウントしてtsubakuro-rust-coreでパスマッピングを指定すると、`C:/tmp/client/blob.bin` のBLOBファイルをinsertすることができます。
185-
また、`C:/tmp/tsurugi` の下にあるBLOBファイルを読むという扱いでselectすることができます。(selectする際のファイルパスはユーザーからは隠蔽されますが)
187+
また、selectする際に、tsubakuro-rust-coreは `C:/tmp/tsurugi` の下にあるBLOBファイルを読みます。
186188

187189
```
188190
docker run -d -p 12345:12345 --name tsurugi -v C:/tmp/client:/mnt/client -v C:/tmp/tsurugi:/opt/tsurugi/var/data/log -e GLOG_v=30 ghcr.io/project-tsurugi/tsurugidb:latest

0 commit comments

Comments
 (0)