Python スクリプトの統合

コンセプト情報

PYCOMMAND コマンド

ACLScript Python コマンドを使用すると、Analytics スクリプトと Python スクリプトをシームレスに統合できます。このコマンドを使用することで、2 つの環境間でデータをやり取りできます。つまり、Analytics の 1 つのデータ分析ワークフロー内で、特定のタスクに最適な環境を選んで使用することができます。

メモ

ACLScript Python コマンドを使用するには、コマンドを実行するコンピューターに互換性のあるバージョンの Python をインストールし、構成する必要があります。詳細については、Python の Analytics 連携用設定を参照してください。

機能の仕組み

Python コマンドは、Analytics テーブルをデータフレームとして外部の Python スクリプトに渡し、Python スクリプトが実行されるのを待ってから、Python スクリプトから返された出力を使用して Analytics プロジェクトに新しいテーブルを作成します。Python コマンドは、Analytics スクリプト内で必要な回数だけ使用できます。

Analytics インストールには次の 2 つの Python 関数が含まれ、Python スクリプトでそれらの関数を使用してデータの入出力を行います。

  • 入力データ acl_py_util.from_an() は Analytics のデータを Python にインポートします。

  • 出力データ acl_py_util.to_an() は Python のデータを Analytics にエクスポートします。

さまざまな目的での Python コマンドの使用

ACLScript Python コマンドには柔軟性があり、さまざまな目的で使用できます。

  • データの往復 データを Analytics から Python にインポートし、Python で分析を実行し、分析結果を Analytics に戻します。

  • データの一方向送信 データを Analytics から Python にインポートし、Python で分析またはファイル変換を実行し、結果を Analytics 以外の保存先に、またはファイル形式で保存します。

  • データの一方向送信 データを外部ソースから Python にインポートし、Python で分析またはファイルの準備を行い、結果を Analytics にエクスポートします。

  • データを転送しない Analytics から Python スクリプトをトリガーし、ワークフロー全体に関連するタスクを実行します。

Analytics と Python のスクリプトの整合

ACLScript Python コマンドと、データの入出力を行う 2 つの Python 関数は、比較的簡単に使用できます。ただし、ACLScript Python コマンドと、対応する Python スクリプトのスクリプト ロジックが整合していることを確認する必要があります。整合性がないと、統合プロセスが失敗する原因となります。以下の表は指針です。

ACLScript Python コマンド Python スクリプト
  • データをエクスポートする

  • データ入力関数が存在する必要がある:
    acl_py_util.from_an()

  • Analytics フィールド名を使用してデータがエクスポートされることを指定する

  • 参照されるフィールド名は Analytics フィールド名と一致する必要がある

  • 実行する Python スクリプトを指定する

  • 名前とファイル パスの場所が一致する Python スクリプトがなければならない

  • テーブルが Analytics に返されることを指定する

  • データ出力関数が存在する必要がある:
    acl_py_util.to_an()

ログ ファイルの使用したトラブルシューティング

Analytics によって、ACLScript Python コマンドに関連付けられた 2 つのログ ファイルが作成されます。ログは、Analytics と Python の統合に関するトラブルシューティングや、関連する Analytics および Python スクリプトのエラーのデバッグに役立ちます。

ログ ファイルは、Analytics プロジェクト フォルダーに格納されます。

  • aclpython.log – ACLScript Python コマンドが失敗したときの ACLScript エラー メッセージが記録されます。

  • acl_py_util.log – Python スクリプトによって出力される情報メッセージが記録されます。

    acl_py_util.log は、Analytics のインストールに含まれる構成可能なログです。ログのセットアップと構成の方法について詳しくは、acl_py_util.log をセットアップするを参照してください。

Python スクリプトを実行する

ACLScript Python コマンドを使用して、Analytics から Python スクリプトを実行します。コマンドに必要な情報は、実行する Python スクリプトのファイル パスと名前だけです。

このコマンドを使用すると、Analytics のデータを Python スクリプトにエクスポートしたり、Python スクリプトのデータを Analytics に返したりできます。ただし、データの転送は必須ではありません。

  1. Analytics のデータを Python スクリプトにエクスポートするには、対象のデータが含まれるテーブルを開きます。

  2. Analytics メイン メニューから、[分析] > [Python]の順に選択します。

  3. Python]フィールドで、実行する Python スクリプトのファイル パスと名前を指定します。

    例:C:\Python_data_analysis_scripts\testInOutput.py

    参照]をクリックし、コンピューター上の Python スクリプトに移動できます。

    Python スクリプトへの相対パスを指定できます。また、スクリプトが Analytics プロジェクト フォルダー内にある場合は、スクリプトのファイル名だけを指定することも可能です。

  4. Python にデータをエクスポートする場合、以下を実行します。

    1. フィールドの選択]をクリックし、Analytics によって Python スクリプトからアクセスできるようにされるデータフレームに、1 つ以上のフィールドを追加します。

      ヒント

      データフレームには、フィールドとして式も追加することができます。式を作成するには、[]をクリックし、表示されるダイアログ ボックスで選択できる関数、フィールド、演算子を使用します。詳細については、式ビルダーの概要を参照してください。

    2. 省略可能。[データ エクスポート オプション]セクションでは、Analytics データを Python スクリプトに送信する方法を定義します。

      詳細については、データ エクスポート オプションを参照してください。

    3. 省略可能。Python スクリプトに送信されるレコードをフィルタリングするには、[If]をクリックし、[式ビルダー]ダイアログ ボックスを使って、フィルターとして使用する条件式を作成します。

      式ビルダーを使用した式の作成方法の詳細については、式ビルダーによる式の作成を参照してください。

  5. Python のデータを返す場合、以下を実行します。

    1. 宛先]テキスト ボックスで、返されるデータを格納するテーブルの名前を指定します。

      宛先]をクリックし、ファイル エクスプローラーを使ってソース データ ファイルを保存するフォルダーに移動します。

      メモ

      Analytics のテーブル名は、最長で 64 文字の英数字(拡張子 .FIL を含まない)に制限されます。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。

    2. 処理の完了時に、テーブルを自動的に開くようにするには、[出力テーブルの使用]をオンにします。

  6. 省略可能。ダイアログ ボックスの[詳細]タブで、使用する範囲関連オプションを指定します。

    詳細については、[詳細]タブを参照してください。

  7. コマンドを実行するには、[OK]をクリックします。

    エラー メッセージが表示され、Python コマンドまたは Python スクリプトの実行に失敗する場合、[オプション]ダイアログ ボックスで指定した[Python パス]値が正しいことを確認してください。詳細については、Analytics のオプションに仮想環境パスを追加するを参照してください。

[PYCOMMAND]ダイアログ ボックスのオプション

データ エクスポート オプション

オプション 説明
フィールド名付きでエクスポートする ソース Analytics テーブルのフィールド名を Python データフレームの列名として使用します。このオプションは、コマンドの KEEPTITLE オプションを設定します。また、このオプションは、Python スクリプト内で列名を使ってデータを取得したい場合に必要です。
列区切り Python にデータを送信する際に、フィールド間の区切り文字として使用する文字。
テキスト修飾子

Python にデータを送信する際にフィールド値を識別するテキスト修飾子として使用する文字。

[詳細]タブ

オプション 説明
すべて ビュー内のすべてのレコード(デフォルトの選択対象)を処理します。
先頭 テーブル内の冒頭のレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。
次へ

テーブル内の現在選択されているレコードと、そのレコードから数えて指定された件数のレコードまでを処理します。

メモ

"先頭" または "" オプションで指定されたレコード数は、テーブル内の物理的な順番またはインデックス順のレコードを参照するもので、ビューに適用されたフィルターやクイック ソートは一切無視します。ただし、分析操作の結果ではすべてのフィルターを考慮します。

ビューでクイック ソートが実行されている場合、"" は "先頭" のように動作します。

While

WHILE ステートメントを使用すると、条件に基づいて主テーブル内のレコードの処理を制限できます。

指定した条件が true と評価される間のみ、ビュー内のレコードが処理されます。条件が false と評価されるとすぐに処理が終了し、それ以上レコードは判断されません。詳細については、式ビルダーによる式の作成を参照してください。