ftp

FTP プロファイルを使用してリモート FTP サーバーのファイルリストを照会したり、ファイルの内容を読み込んだり、クエリ結果をファイルとしてアップロードします。

コマンドプロパティ

項目説明
コマンドタイプドライバークエリまたは加工クエリ
必要な権限FTP プロファイルの使用権限
ライセンス使用量集計あり
並列実行非対応
分散実行非対応

構文

ファイルリストを照会するには

ftp PROFILE ls [encoding=STR] PATH

ファイルの内容を読み込むには

ftp PROFILE cat [format={text|csv|tsv|json}] [offset=LONG] [limit=LONG] [encoding=STR] [header=BOOL] PATH

ファイルをアップロードするには

ftp PROFILE put [format={text|csv|tsv|json}] [fields=FIELD,...] [append=BOOL] [overwrite=BOOL] [encoding=STR] PATH

オプション

format={text|csv|tsv|json}
ファイル形式(デフォルト: text
  • text: 1行を1つのレコードとして読み込むか記録します。
  • csv: CSV 形式でファイルを読み込むか記録します。
  • tsv: タブ区切り形式でファイルを読み込むか記録します。
  • json: JSON 形式でファイルを読み込むか記録します。
offset=LONG
cat 動作でスキップするレコード数。0 以上の整数を指定します。(デフォルト: 0
limit=LONG
cat 動作で読み込む最大レコード数。0 以上の整数を指定します。
encoding=STR
ファイルエンコーディング(デフォルト: utf-8
header=BOOL
cat 動作で CSV、TSV 形式ファイルの最初の行をヘッダーとして使用するかどうか(デフォルト: f
fields=FIELD,...
put 動作で記録するフィールドのリスト。カンマ(,)で区切ります。未指定の場合は line フィールドを記録します。JSON 形式で未指定の場合はすべてのフィールドを記録します。
append=BOOL
put 動作で既存のファイルに内容を追記するかどうか。overwrite オプションと同時には使用できません。(デフォルト: f
overwrite=BOOL
put 動作で既存のファイルを上書きするかどうか。append オプションと同時には使用できません。(デフォルト: f

ターゲット

PROFILE
FTP プロファイル名。システムに登録された FTP 接続プロファイルを指定します。
PATH
FTP サーバーのファイルまたはディレクトリのパス。cat 動作ではワイルドカード(*)をファイル名に使用できます。

出力フィールド

ls 動作の出力フィールド:

フィールド説明
typestring項目の種類。dir または file
namestringファイルまたはディレクトリ名
file_sizelongファイルサイズ(バイト)
ownerstringファイルの所有者
groupstringファイルのグループ
modified_atタイムスタンプ最終更新時刻

cat 動作の出力フィールドは format オプションによって異なります。text 形式では line フィールドに1行のテキストを割り当てます。csvtsv 形式ではヘッダーまたは列インデックス基準のフィールドを割り当てます。json 形式では JSON キー・バリューのペアをフィールドとして割り当てます。すべての形式で _file フィールドに元のファイルパスを割り当てます。

エラーコード

パースエラー
エラーコードメッセージ説明
40001missing-fieldコマンド構文が正しくない場合
40002ftp-profile-not-found指定した FTP プロファイルが登録されていない場合
40003no-permission現在のユーザーがそのプロファイルの使用権限を持っていない場合
40004invalid-offsetoffset 値が整数でない場合
40005invalid-limitlimit 値が整数でない場合
40006invalid-ftp-command動作が lscatput のいずれでもない場合
40007invalid-ftp-file-formatformat 値が textcsvtsvjson のいずれでもない場合
40008invalid-encodingサポートされていないエンコーディングを指定した場合
40012choose-overwrite-or-appendput 動作で overwriteappend を同時に指定した場合
ランタイムエラー
エラーコードメッセージ説明後処理動作
40009invalid-wildcard-pathパスのディレクトリ部分にワイルドカードを使用した場合クエリを中断します。
40010cannot-read-directorycat 動作の対象がディレクトリの場合クエリを中断します。
40011cannot-executeFTP サーバーへの接続またはファイル処理中にエラーが発生した場合FTP 接続を終了します。
40013cannot-overwrite-fileput 動作で既存のファイルがあるが overwrite が無効な場合クエリを中断します。
40014invalid-fieldsput 動作で append 時に既存のヘッダーとフィールドが異なる場合クエリを中断します。

説明

ftp コマンドは、システムに登録された FTP プロファイルを使用してリモート FTP サーバーと通信します。3種類の動作をサポートします。

  • ls: 指定したパスのファイルおよびディレクトリのリストを照会します。ディレクトリを先に、ファイルを後に名前順で並べ替えて出力します。ls 動作はドライバークエリとして動作します。
  • cat: 指定したパスのファイルの内容を読み込み、レコードに変換します。ワイルドカード(*)をファイル名に使用できます。cat 動作はドライバークエリとして動作します。
  • put: 入力レコードを指定したパスのファイルに記録します。put 動作は加工クエリとして動作し、入力レコードをそのまま次のコマンドに渡します。put 動作は制御ノードで実行されます(reducer)。

プロファイル名とファイルパスにクエリパラメーター(${})を使用できます。

使用例

これらの使用例で参照する WEB_APACHE_SAMPLE テーブルを準備するには、クエリ実習用データを参照してください。

  1. FTP サーバーのファイルリストを照会

    ftp myprofile ls /data/logs
    

    myprofile FTP プロファイルを使用して /data/logs ディレクトリのファイルリストを照会します。

  2. FTP サーバーからテキストファイルを読み込む

    ftp myprofile cat /data/logs/access.log
    

    /data/logs/access.log ファイルをテキスト形式で読み込み、1行ずつレコードに変換します。

  3. CSV ファイルをヘッダーとともに読み込む

    ftp myprofile cat format=csv header=t /data/logs/report.csv
    

    CSV ファイルの最初の行をフィールド名として使用してファイルを読み込みます。

  4. ワイルドカードを使用して複数の JSON ファイルを読み込む

    ftp myprofile cat format=json /data/logs/*.json
    

    /data/logs/ ディレクトリ内の拡張子が .json のすべてのファイルを読み込みます。

  5. クエリ結果を FTP サーバーに CSV ファイルとしてアップロード

    table WEB_APACHE_SAMPLE
    | stats count by method
    | ftp myprofile put format=csv fields=method,count /data/report.csv
    

    Web アクセスログを HTTP メソッドごとに集計した結果を CSV 形式で FTP サーバーにアップロードします。

  6. 既存のファイルに内容を追記

    table WEB_APACHE_SAMPLE
    | fields src_ip, method, uri, status, bytes
    | ftp myprofile put format=json append=t /data/logs/combined.json
    

    JSON 形式で既存のファイルに内容を追記します。

互換性

ftp コマンドは Sonar 4.0以前のバージョンから提供されています。