Skip to content
Last updated

FTP Serverインポートインテグレーション

このデータコネクタを使用して、FTPサーバーからTreasure Dataに直接データをインポートできます。

FTPサーバーからデータをインポートするサンプルワークフローについては、Treasure Boxesをご覧ください。

前提条件

  • Treasure Dataの基本知識
  • FTPの基本知識

要件

  • 有効なプロトコルを使用していることを確認してください。FTPまたはFTPSを使用する場合は、このFTP用データコネクタを使用できます。SFTPの場合は、SFTPインテグレーションを使用してください。
  • ファイアウォールを使用している場合は、許可されているIPレンジ/ポートを確認してください。サーバー管理者は、セキュリティ上の理由からデフォルトのポート番号を変更することがあります。
  • FTPは、デフォルトの制御ポートとしてTCP/21を使用しますが、パッシブモードを使用している場合は、データ転送ポートとして任意のTCPポートも使用します。このポート範囲は、サーバーの設定によって異なります。
  • パッシブモードで接続していることを確認してください。アクティブモードは、FTPサーバー側から接続を確立するため、通常は機能しません。
  • FTPSを使用している場合、ExplicitImplicitの2つのモードがあります。通常はExplicitモードが使用されます。

インクリメンタルデータ読み込みについて

インクリメンタル読み込みについてを参照してください。

制限事項、サポート、推奨事項

  • 一部のインテグレーションでは、インクリメンタル読み込みを選択する場合、フルテーブルスキャンを回避するために、カラムにインデックスがあることを確認する必要がある場合があります。
  • Timestamp、Datetime、および数値カラムのみがincremental_columnsとしてサポートされています。
  • 複雑なクエリのプライマリキーを検出できないため、rawクエリにはincremental_columnsが必要です。

TD Consoleを使用して接続を作成する

新しい接続を作成する

Treasure Dataでは、クエリを実行する前にデータ接続を作成して設定する必要があります。データ接続の一部として、インテグレーションにアクセスするための認証情報を提供します。

  1. TD Consoleを開きます。

  2. Integrations Hub > Catalogに移動します。

  3. FTPを検索して選択します。

  1. Create Authenticationを選択します。

  1. リモートFTPインスタンスに必要な認証情報を入力します。選択内容によって、表示されるフィールドが異なる場合があります:
フィールド説明
HostリモートFTPインスタンスのホスト情報(例:IPアドレス)。
PortリモートFTPインスタンスの接続ポート。デフォルトは21です。
UserリモートFTPインスタンスへの接続に使用するユーザー名。
PasswordリモートFTPインスタンスへの接続に使用するパスワード。
Passive modeパッシブモードを使用する(デフォルト:チェック済み)
ASCII modeバイナリモードの代わりにASCIIモードを使用する(ブール値、デフォルト:未チェック)
Use FTPS/FTPESFTPS(SSL暗号化)を使用する。(ブール値、デフォルト:未チェック)
Verify certサーバーによって提供される証明書を検証します。デフォルトでは、サーバー証明書がJVMのデフォルトの信頼できるCAリストのいずれかのCAによって署名されていない場合、接続は失敗します。
Verify hostnameサーバーのホスト名が提供された証明書と一致することを検証します。
Enable FTPESFTPESはFTPSのセキュリティ拡張です。
SSL CA Cert Content証明書ファイルの内容を貼り付けます。
  1. Continueを選択します。

  2. 接続の名前を入力します。

  3. Continueを選択します。

Treasure Dataへのデータ転送

認証された接続を作成すると、自動的にAuthenticationsに移動します。

  1. 作成した接続を検索します。
  2. New Sourceを選択します。
  3. Data TransferフィールドにSourceの名前を入力します。
  4. Nextを選択します。

Source Tableダイアログが開きます。

  1. 以下のパラメータを編集します:
パラメータ説明
Path prefixターゲットファイルのプレフィックス(文字列、必須)。例:resultoutputtest。
Path regexファイルパスをクエリするための正規表現を入力します。ファイルパスが指定されたパターンと一致しない場合、そのファイルはスキップされます。例えば、パターン.csv$#を指定した場合、ファイルのパスがパターンと一致しない場合、そのファイルはスキップされます。
Incrementalインクリメンタル読み込みを有効にします(ブール値)、オプション。デフォルト:true。インクリメンタル読み込みが有効な場合、次回実行のconfig diffにはlast_pathパラメータが含まれるため、次回実行ではそのパスより前のファイルがスキップされます。それ以外の場合、last_pathは含まれません。
Start after pathこれより辞書順で大きいパスのみがインポートされます。
  1. Nextを選択します。

Data Settingsページは、必要に応じて変更できます。または、このページをスキップすることもできます。

  1. 必要に応じて、パラメータを編集します。

  2. Nextを選択します。

Filters

Filters は、S3、FTP、または SFTP コネクターの Create Source または Edit Source インポート設定で使用できます。

Import Integration Filters を使用すると、インポート用のデータ設定の編集を完了した後、インポートされたデータを変更できます。

import integration filters を適用するには:

  1. Data Settings で Next を選択します。Filters ダイアログが開きます。
  2. 追加したいフィルターオプションを選択します。
  3. Add Filter を選択します。そのフィルターのパラメーターダイアログが開きます。
  4. パラメーターを編集します。各フィルタータイプの情報については、次のいずれかを参照してください:
  • Retaining Columns Filter
  • Adding Columns Filter
  • Dropping Columns Filter
  • Expanding JSON Filter
  • Digesting Filter
  1. オプションで、同じタイプの別のフィルターを追加するには、特定の列フィルターダイアログ内で Add を選択します。
  2. オプションで、別のタイプの別のフィルターを追加するには、リストからフィルターオプションを選択して、同じ手順を繰り返します。
  3. 追加したいフィルターを追加した後、Next を選択します。Data Preview ダイアログが開きます。

Data Preview

インポートを実行する前に、Generate Preview を選択してデータのプレビューを表示できます。Data preview はオプションであり、選択した場合はダイアログの次のページに安全にスキップできます。

  1. Next を選択します。Data Preview ページが開きます。
  2. データをプレビューする場合は、Generate Preview を選択します。
  3. データを確認します。

Data Placement

データの配置について、データを配置したいターゲット database と table を選択し、インポートを実行する頻度を指定します。

  1. Next を選択します。Storage の下で、インポートされたデータを配置する新しい database を作成するか、既存の database を選択し、新しい table を作成するか、既存の table を選択します。

  2. Database を選択 > Select an existing または Create New Database を選択します。

  3. オプションで、database 名を入力します。

  4. Table を選択 > Select an existing または Create New Table を選択します。

  5. オプションで、table 名を入力します。

  6. データをインポートする方法を選択します。

    • Append (デフォルト) - データインポートの結果は table に追加されます。 table が存在しない場合は作成されます。
    • Always Replace - 既存の table の全体の内容をクエリの結果出力で置き換えます。table が存在しない場合は、新しい table が作成されます。
    • Replace on New Data - 新しいデータがある場合のみ、既存の table の全体の内容をクエリの結果出力で置き換えます。
  7. Timestamp-based Partition Key 列を選択します。 デフォルトキーとは異なるパーティションキーシードを設定したい場合は、long または timestamp 列をパーティショニング時刻として指定できます。デフォルトの時刻列として、add_time フィルターで upload_time を使用します。

  8. データストレージの Timezone を選択します。

  9. Schedule の下で、このクエリを実行するタイミングと頻度を選択できます。

一度だけ実行

  1. Off を選択します。
  2. Scheduling Timezone を選択します。
  3. Create & Run Now を選択します。

定期的に繰り返す

  1. On を選択します。
  2. Schedule を選択します。UI では、@hourly@daily@monthly、またはカスタム cron の 4 つのオプションが提供されます。
  3. Delay Transfer を選択して、実行時間の遅延を追加することもできます。
  4. Scheduling Timezone を選択します。
  5. Create & Run Now を選択します。

転送が実行された後、Data Workbench > Databases で転送の結果を確認できます。

接続の検証

ジョブログを確認してください。警告とエラーは、インポートの成功に関する情報を提供します。例えば、インポートエラーに関連するソースファイル名を特定することができます。

ワークフローでのエクスポート結果の設定(オプション)

Treasure Workflow内では、このデータコネクタを使用してデータをエクスポートするように指定できます。

詳細については、TD Toolbeltを使用してワークフローでデータをエクスポートするをご覧ください。

FTPのワークフロー例

timezone: UTC

schedule:
  daily>: 02:00:00

sla:
  time: 08:00
  +notice:
    mail>: {data: Treasure Workflow Notification}
    subject: This workflow is taking long time to finish
    to: [meg@example.com]

_export:
  td:
    dest_db: dest_db
    dest_table: dest_table
  ftp:
    ssl: true
    ssl_verify: false

+prepare_table:
  td_ddl>:
  database: ${td.dest_db}
  create_tables: ["${td.dest_table}"]

+load_step:
  td_load>: config/daily_load.yml
  database: ${td.dest_db}
  table: ${td.dest_table}