# Workflows SFTPデータコネクタの例

## サンプルプロジェクトのダウンロード

1. 以下のURLからサンプルプロジェクトをダウンロードします


[GitHub Gist](https://gist.github.com/wchen4/c15518885045cc9ebb9a45f6419fab1e/raw/1ad0498954b66fb361ffcf801349bc8fb9649b00/sftp_pull_push.tar.gz)

1. ダウンロードしたプロジェクトを解凍します。例えば、コマンドラインから以下を実行できます：


```bash
tar xzvf sftp_pull_push.tar.gz
```

1. 新しく作成されたワークフロープロジェクトディレクトリに移動します。例：


```bash
cd sftp_pull_push
```

## サンプルインポートファイルをSFTPサーバーにアップロード

_imports/sample_data.csv_ファイルをSFTPサーバーにアップロードします。このファイルには、後でクエリに使用する22件のサンプルデータレコードが含まれています。

## 環境に合わせて例を変更

1. _pull_push.dig_ファイルを変更し、エクスポート用のSFTPサーバーの設定で**<...>**内の値を置き換えて**result_url**を更新します。


```yaml pull_push.dig
_export:
  td:
    database: workflow_temp

+import_from_sftp:
  td_load>: imports/sftp_load.yml
  table: pull_push_tutorial

+export_to_sftp:
  td>: queries/count_rows.sql
  result_url:
    {
      "type":"sftp",
      "host":"<host>",
      "port":<port>,
      "auth_method":"Password",
      "username":"<username>",
      "password":"<password>",
      "user_directory_is_root":true,
      "path_prefix":"export_example.csv",
      "formatter":{"type":"csv"}
    }
```

1. インポート用のSFTP接続詳細で_sftp_load.yml_ファイルを変更します。


```yaml sftp_load.yaml
in:
  type: sftp
  host: <host>
  port: <port>
  user: <username>
  password: <password>
```

## 必要なテーブルの作成

Treasure Dataでデータコネクタジョブを実行するには、データをロードするデータベースとテーブルを作成しておく必要があります。

1. Treasure コンソールを開きます。
2. Data Workbench > Databasesに移動します。
3. **workflow_temp**が存在しない場合は、新しいデータベースを作成し、**workflow_temp**という名前を付けます。
4. 新しいテーブルを作成し、push_pull_tutorialという名前を付けます。


![](/assets/pushpulltable.aa8aeea3578432b107c99ce42433e599bcbb7359c665a8cf945a45b339cc25de.2e4f387b.png)

または、TD Toolbeltがインストールされている場所から以下のコマンドを使用できます：

```bash
td table:create workflow_temp pull_push_tutorial
```

## ワークフローファイルをTreasure Dataに追加

1. Treasure コンソールから、Data Workbench > Workflowsに移動します。
2. 新しいワークフローを追加し、**workflow_sftp_pull_push**という名前を付けます。
3. 空白のテンプレートを選択します。
4. ワークフロー定義に、上記で変更した例のファイルをコピーして貼り付けます。
5. ワークフローを保存してコミットします。


または、クエリとワークフローファイルをTreasure Dataにアップロードするには：

1. TD Toolbeltがインストールされているマシンから。
2. コマンドウィンドウを開きます。
3. **sftp_pull_push**ディレクトリに移動します。
4. 以下を入力します：


```bash
td wf push sftp_pull_push
```

ワークフローに必要なファイルが登録され、Treasure コンソール内から表示できるようになりました。この例では、プロジェクト名は**sftp_pull_push**で、ワークフロー名は**pull_push**です。

## Treasure Dataでのワークフローの実行

1. Data Workbench > Workflows > pull_pushから。
2. New Runを選択します。
3. Run Historyを確認して、ワークフローの実行ステップを監視します。


または、以下のコマンドを実行して、すでにTreasure Dataに送信されたワークフローを実行します：

```bash
td wf start sftp_pull_push pull_push --session now
```

実行が成功した場合、SFTPサーバーにクエリの結果を含む_export_example.csv_というファイルが表示されます。