CData Sync にて再度初期レプリケーションを実行する暫定的な方法

## 概要

CData Sync にて再度初期レプリケーションを実行する暫定的な方法を共有します。検証時に何度かレプリケートしていたいたのですが、再度全件レプリケーションされずに困りました。そこでとりあえず初期レプリケーションを再度実施する方法がないかと調査した結果を共有します。

::: note info
本記事の方法はとりあえず実施可能だった方法を共有しており、初期レプリケーションを実施するより良い方法が存在する可能性があります。
:::

試した方法とその結果を下記表に示します。現状では、 別名の Connection を再作成する方法により初期レプリケーションを再度実施できました。

| #    | 対応方法                   | 初期レプリケーションの実施有無 |
| ---- | -------------------------- | ------------------------------ |
| 1    | task を再作成する方法              | ×                              |
| 2    | Job を再作成する方法               | ×                              |
| 3    | 同名の Connection を再作成する方法 | ×                              |
| 4    | 別名の Connection を再作成する方法 | ○                              |
| 5    | `Advanced`オプションの`Drop Table`を設定する方法     | ○ ※1                             |
| 6    | `Advanced`オプションの`Truncate Table Data`を設定する方法      | ○ ※1                              |

※1 書き込み先のテーブルのデータがなくなるため、注意。レプリケート先のテーブルの提供を継続したい場合には、本方法では想定通りの動作でない可能性があります。

データを削除せずに初期レプリケーションを再実行したい場合には、 Clone した Connection の名称をに日付事項を設定した異なる名称（例`salesforce_01__20240901162004`）に設定した上で Clone した Job にてその Connection を指定する方法を実施しようと考えました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/08dc8264-fd31-d549-fc5e-b3581a26ac53.png)


## 事前手順

### 1. 検証用の Connection を作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/5971df39-bd71-5889-a25b-0cdc89783ec9.png)

### 2. 検証用の Job を作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/af3dd14f-44a6-a43a-ebcd-9e69e8278211.png)

### 3. 検証用の Task を作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/66886a65-1d16-94a1-3604-0fbbf7f95133.png)

### 4. Job を実行して初期レプリケーションが実行されることを確認

私の検証時には、連携されたレコード数が 543 件であることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c394194f-b677-6326-f8d9-7a7718052962.png)

ソースのログを確認すると、 WHERE 句が利用されていないクエリが実行されていることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f8ba54f2-38f2-afdc-c143-cd27b923c2ff.png)

### 5. 再実行して初期レプリケーションが実行されないことを確認

連携されたレコード数が 0 件であることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7aefe040-aee6-42ab-118e-f0a69c7ddef2.png)

ソースのログを確認すると、 WHERE 句が利用されているクエリが実行されていることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/80f75c8e-8415-a381-db75-2648d45bec32.png)

## 初期レプリケーション実行の検証

### 1. task を再作成する方法

#### 1-1. Task を再作成

作成済みの Task を削除。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d764f02f-b783-2373-e246-f66573036029.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c21a2557-fdf0-ac1b-f6f6-16c140b359ee.png)

同じオブジェクトを参照した Task を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d9926a6e-52c0-fb42-d6c2-84dbbc72c8ae.png)

再度 Job を実行。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/75a2a92b-0034-8192-7d2e-4fada4bd7724.png)

#### 1-2. 初期レプリケーションの実行有無を確認

初期レプリケーションが実施されていないことを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/61a863d4-dd5d-ac8f-4426-2d2fdc2904ab.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/cf9f750b-da18-4737-3c65-4f751c0bb432.png)

### 2. Job を再作成する方法

#### 2-1. Job を再作成

作成済みの Job を削除。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e8297dbd-5e3d-9a77-e9ae-6cba976428bd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/65dba9b7-7d1d-cdfd-8bd5-5e6f62027a5f.png)

再度 job を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/932b172e-56e6-8391-f38c-f4fb6fa74770.png)

Task を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/454262c8-d8b7-9292-1cc1-d0f694491918.png)

Job を実行。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/abcd9ab0-eb74-41f2-1bff-17f54cf2f96d.png)

#### 2-2. 初期レプリケーションの実行有無を確認

初期レプリケーションが実施されていないことを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/8f3e0bc6-7964-01b3-ce4c-0a8069aaf259.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/17d3ae64-881b-3a05-ed7d-cae9dcb15ebb.png)

### 3. 同名の Connection を再作成する方法

#### 3-1. 同名の Connection を再作成

作成済みの Job と Connection を削除。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/eba79334-9aed-be28-87cd-21e85f857623.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/9166b182-d50a-d537-de8e-a08e6b52e30c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/dfec75df-d8b9-dfbe-9e8e-dff6ee74f233.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/9e1c73a7-9e97-fb55-d8f4-dcf139ba88b6.png)

削除した Connection と同名の Connection を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a3532817-2bec-37a7-2cf0-877a6270fa57.png)

Job と Task を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d92e5cf2-7e62-d2d0-2be7-27e8f88f4c67.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d8aa90d0-5a61-a18b-55e5-4a2539f8e086.png)

ジョブを実行。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/05d519dc-1202-5da6-0b8c-b29f81c42f36.png)

#### 3-2. 初期レプリケーションの実行有無を確認

初期レプリケーションが実施されていないことを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/4cf1f2da-04d6-9090-846c-ccb76065c3f6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e05f7dfe-eecf-30ea-1d7e-b89f2684cb8e.png)

初期レプリケーションが実施されていないことを確認。

### 4. 別名の Connection を再作成する方法

#### 4-1. 別名の Connection を再作成

作成済みの Job と Connection を削除。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1bd71b4c-19ed-2c07-728f-828d7a295618.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c413dcb9-f42e-b85d-f2f1-107b2e4d304e.png)

別名の Connection を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/edf67ad9-7972-a1fa-7beb-86756438490a.png)

Job と Task を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7279071b-a6ec-67a2-77e9-4d4f6f3b8f95.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/57278124-6a58-1cb0-9c00-4e5f29dc4bca.png)

Job を実行。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/086b8cee-a39d-456e-53c9-780963609f6e.png)

#### 4-2. 初期レプリケーションの実行有無を確認

初期レプリケーションが実施されていることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/2ef92b25-2e87-6adc-59b2-92d7f789e232.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/45a3a79b-1731-7e44-4a5f-1935ead17810.png)

### 5. `Advanced`オプションの`Drop Table`を設定する方法 

#### 5-1. `Advanced`オプションの`Drop Table`を設定

Job の`Advanced`オプションにて、`Drop Table`をチェック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a0304d18-1ffe-57ea-952a-418688b15b12.png)

Job を実行。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/4e85cb53-6e68-8aab-e775-bea1a0980c88.png)

#### 5-2. 初期レプリケーションの実行有無を確認

初期レプリケーションが実施されていることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/8a1e173d-6a97-9b40-e7dc-098e5319a2ad.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/023d7ee2-9b89-944c-3379-eaab12d0e9c5.png)

### 6. `Advanced`オプションの`Truncate Table Data`を設定する方法 

#### 6-1. `Advanced`オプションの`Truncate Table Data`を設定

Job の`Advanced`オプションにて、`Truncate Table Data`をチェック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/ec29297e-218f-0b8b-1402-83f5c8955172.png)

Job を実行。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c0c8b9e4-2024-917a-63d2-1216af459fd2.png)

#### 6-2. 初期レプリケーションの実行有無を確認

初期レプリケーションが実施されていることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e91e6baa-55f2-e062-0388-bf5eb06e45d0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/217a5c75-57af-68b9-df68-7e23eafb038f.png)

## 更新履歴

### 2024/09/03 

下記の方法を教授いただいたため、追記。

- `Advanced`オプションの`Drop Table`を設定する方法
- `Advanced`オプションの`Truncate Table Data`を設定する方法