概要
GlueからOpenSearch Serviceのドメインにドキュメントを格納する際に、ドキュメントIDを指定する方法が見当たらなかったため、記事を作成。
※なお、記事作成時点(2024/12)ではOpensearch Serverlessに対しては、Glue Connectionからは接続できない。
※誤りがある場合はご指摘いただけますと大変助かります。
前提
- Glue Connection作成済み
- Data source作成済み
- Opensearch service作成済み
- ドキュメントIDに指定したい値を持ったカラムが存在している(以下データ例の
doc_id
参照)
データ例
id | text | doc_id |
---|---|---|
1 | 私は元気です | 0001 |
2 | 公園に散歩に行きます | 0002 |
3 | 平日は仕事です | 0003 |
操作
Glue Visual Studioから実行する場合
- Data targetにOpensearch Serviceを選択する。
- Custom Amazon OpenSearch Service PropertiesのKeyに
opensearch.mapping.id
、Valueに「前提」で記載した、ドキュメントIDに指定したい値を持ったカラム名(今回だとdoc_id
)を入力する。 - ジョブ実行すると、格納されたデータの
_id
に、指定したドキュメントIDが設定されていることが確認できる。
※ID指定で上書きも可能
スクリプトエディタから実行する場合(dynamicFrame使用)
from_options内のconnection_optionsに"opensearch.mapping.id": "doc_id"
を入力する
XXX_node = glueContext.write_dynamic_frame.from_options(
frame=YYY_node,
connection_type="opensearch",
connection_options={
"opensearch.mapping.id": "doc_id",
その他の設定
}
)