2

Oracle データベース テーブルにクエリを実行し、ElasticSearch にインデックスを付けるために、1 日に 1 回実行するインデックス作成ジョブを作成する必要があります。テーブルの依存関係があるため、最初にインデックスを作成するテーブルと次にインデックスを作成するテーブルがあります。しかし、そのインデックス作成プロセスの周りでは、ES インデックスに入るフィールドを拡張する必要があります。また、Oracle データベース テーブルのジョブ ステータスにログを記録する必要があります。また、インデックス作成プロセスが成功した/失敗したレコードもログに記録する必要があります。

Elastic Search プラグイン JDBC-River を使用できますか?

4

2 に答える 2

5

私の懸念は、クエリの後に挿入ステートメントを介して RDBS にログインし、DB から抽出することでした。jdbc-river の作成者と連絡を取りました。彼は、これが私が物事を構成する方法であると述べました: 本当に役に立ちます!

curl -XDELETE '0:9200/_river/my_jdbc_river/


curl -XPUT '0:9200/_river/my_jdbc_river/_meta' -d '
    {
        "type": "jdbc",
        "jdbc": {
            "url": "jdbc:mysql://localhost:3306/test",
            "user": "",
            "password": "",
            "schedule": "0 0-59 0-23 ? * *",
            "sql": [
                {
                    "statement": "select *, created as _id, \"myjdbc\" as _index, \"mytype\" as _type from orders"
                },
                {
                    "statement": "insert into ack(n,t,c) values(?,?,?)",
                    "parameter": [
                        "$job",
                        "$now",
                        "$count"
                    ]
                }
            ]
        }
    }'
于 2014-02-03T04:27:06.857 に答える