

AWS Application Discovery Service は、新規のお客様に公開されなくなりました。または、同様の機能 AWS Transform を提供する を使用します。詳細については、[AWS 「Application Discovery Service の可用性の変更](https://docs.aws.amazon.com/application-discovery/latest/userguide/application-discovery-service-availability-change.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Athena でのデータの探索
<a name="explore-data"></a>

Amazon Athena のデータ探索では、Discovery Agent によって検出されたすべてのオンプレミスサーバーから収集されたデータを 1 か所で分析できます。Amazon Athena でのデータ探索が Migration Hub コンソールから (または StartContinousExport API を使用して) 有効にされ、エージェントのデータ収集がオンになると、エージェントによって収集されたデータは定期的に S3 バケットに自動的に保存されます。詳細については、「[Amazon Athena でのデータの探索](#explore-data)」を参照してください。

Amazon Athena のデータ探索では、検出エージェントによって検出されたすべてのオンプレミスサーバーから収集されたデータを 1 か所で分析できます。Amazon Athena でのデータ探索が Migration Hub コンソールから (または StartContinousExport API を使用して) 有効にされ、エージェントのデータ収集がオンになると、エージェントによって収集されたデータは定期的に S3 バケットに自動的に保存されます。

その後、Amazon Athena にアクセスして、各サーバーに関する時系列のシステムパフォーマンス、各サーバーで実行されているプロセスのタイプ、および異なるサーバー間でのネットワーク依存関係を分析するために、事前定義されたクエリを実行することができます。これに加えて、Amazon Athena を使用して独自のカスタムクエリを記述する、設定管理データベース (CMDB) エクスポートなどの追加の既存データソースをアップロードする、および検出されたサーバーを実際のビジネスアプリケーションと関連付けることができます。Athena データベースを Amazon Quick と統合して、クエリ出力を視覚化し、追加の分析を実行することもできます。

このセクションのトピックでは、Athena でデータを使用してローカル環境の移行を評価し、計画する方法について説明します AWS。

# Amazon Athena でデータ探索を有効にする
<a name="ce-prep-agents"></a>

Amazon Athena のデータ探索は、Migration Hub コンソールまたは からの API コールを使用して継続的エクスポートを有効にすることで有効になります AWS CLI。Amazon Athena で検出されたデータを表示して探索を開始する前に、データ探索を有効にする必要があります。

Continuous Export を有効にすると、アカウントでサービスリンクロール `AWSServiceRoleForApplicationDiscoveryServiceContinuousExport` が自動的に使用されます。このサービスにリンクされたロールの詳細については、「[Application Discovery Service のサービスにリンクされたロールのアクセス許可](service-linked-role-permissions.md)」を参照してください。

次の手順は、コンソールと を使用して Amazon Athena でデータ探索を有効にする方法を示しています AWS CLI。

------
#### [ Turn on with the console ]

Amazon Athena のデータ探索は、Migration Hub コンソールの **Data Collectors** ページで「データ収集を開始する」を選択するか、Amazon Athena でのデータ探索」というラベルのトグルをクリックすると、継続的エクスポートが暗黙的に有効になります。

**コンソールから Amazon Athena でデータ探索を有効にするには**

1. ナビゲーションペインで、**[Data Collectors]** (データコレクタ) を選択します。

1. [**Agents**] (エージェント) タブを選択します。

1. **[Start data collection]** (データ収集の開始) を選択、またはデータ収集がすでに有効になっている場合は **[Data exploration in Amazon Athena]** (Amazon Athena でのデータ探索) トグルをクリックします。

1. 前のステップで作成したダイアログボックスで、関連するコストに同意するチェックボックスをオンにして、[**Continue (続行)**] または [**Enable (有効)**] を選択します。

**注記**  
これでエージェントが「継続的なエクスポート」モードで実行されるようになります。このモードは、Amazon Athena で検出されたデータを表示し、使用することを可能にします。これを初めて有効にする場合は、Amazon Athena にデータが表示されるまで最大 30 分かかる場合があります。

------
#### [ Enable with the AWS CLI ]

Amazon Athena のデータ探索は、 からの API コールを通じて Continuous Export を明示的に有効にすることで有効になります AWS CLI。これを行うには、まず を環境にインストール AWS CLI する必要があります。

**Amazon Athena で をインストール AWS CLI してデータ探索を有効にするには**

1. オペレーティングシステム (Linux、macOS、または Windows) AWS CLI に をインストールします。手順については、[AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)を参照してください。

1. コマンドプロンプト (Windows) またはターミナル (Linux/macOS) を開きます。

   1. `aws configure` を入力して、[Enter] を押します。

   1.  AWS アクセスキー ID と AWS シークレットアクセスキーを入力します。

   1. デフォルトのリージョン名として「`us-west-2`」と入力します。

   1. デフォルトの出力形式として「`text`」と入力します。

1. 次のコマンドを入力します。

   ```
   aws discovery start-continuous-export
   ```

**注記**  
これでエージェントが「継続的なエクスポート」モードで実行されるようになります。このモードは、Amazon Athena で検出されたデータを表示し、使用することを可能にします。これを初めて有効にする場合は、Amazon Athena にデータが表示されるまで最大 30 分かかる場合があります。

------

# Amazon Athena でのデータの直接調査
<a name="explore-direct-in-ate"></a>

Amazon Athena でデータ探索を有効にすると、Athena でデータを直接クエリすることで、エージェントによって検出された詳細な現在のデータの探索と操作を開始できます。このデータを使用して、スプレッドシートの作成、コスト分析の実行、視覚化プログラムへのクエリの移植などを行うことができます。

次の手順では、Athena コンソールでエージェントデータを直接探索する方法について説明します。Athena にデータがない場合、または Amazon Athena でデータ探索を有効にしていない場合は、「」で説明されているように、Amazon Athena でデータ探索を有効にするダイアログボックスが表示されます[Amazon Athena でデータ探索を有効にするデータ探索を有効にする](ce-prep-agents.md)。

**Athena でエージェントが検出したデータを直接検索する**

1.  AWS Migration Hub コンソールで、ナビゲーションペインの**サーバー**を選択します。

1. Amazon Athena コンソールを開くには、**[Explore data in Amazon Athena]** (Amazon Athena でのデータ探索) を選択します。

1. [**Query Editor (クエリエディタ)**] ページのナビゲーションペインの [**Database (データベース)**] で、**application\$1discovery\$1service\$1database** が選択されていることを確認します。
**注記**  
[**Tables (テーブル)**] で、以下のテーブルは、エージェントによってグループ化されたデータセットを表しています。  
**os\$1info\$1agent**
**network\$1interface\$1agent**
**sys\$1performance\$1agent**
**processes\$1agent**
**inbound\$1connection\$1agent**
**outbound\$1connection\$1agent**
**id\$1mapping\$1agent**

1. Athena クエリエディタで SQL クエリを記述して実行することによって、Amazon Athena コンソールでデータをクエリします。たとえば、以下のクエリを使用して、検出されたすべてのサーバー IP アドレスを確認できます。

   ```
   SELECT * FROM network_interface_agent;
   ```

   クエリの例については、「[Amazon Athena での事前定義されたクエリの使用事前定義されたクエリの使用](predefined-queries.md)」を参照してください。

# Amazon Athena データの視覚化
<a name="port-query-to-visualization"></a>

データを視覚化するために、クエリを Amazon Quick などの視覚化プログラムや、Cytoscape、yEd、Gelphi などの他のオープンソースの視覚化ツールに移植できます。ネットワーク図、要約グラフなどのグラフィカルな表現をレンダリングするには、これらのツールを使用します。この方法を使用するときは、視覚化プログラム経由で Athena に接続して、Athena がビジュアライゼーションを生成するためのソースとして収集されたデータにアクセスできるようにします。

**Quick を使用して Amazon Athena データを視覚化するには**

1. [Amazon Quick](https://aws.amazon.com/quicksight/) にサインインします。

1. [**Connect to another data source or upload a file (別のデータソースに接続するか、ファイルをアップロードします)**] を選択します。

1. **[Athena]** を選択します。**[New Athena data source]** (新しい Athena データソース) ダイアログボックスが表示されます。

1. [**Data source name (データソース名)**] フィールドに名前を入力します。

1. **[データソースを作成]** を選択します。

1. [**Choose your table (テーブルの選択)**] ダイアログボックスで、[**Agents-servers-os**] テーブルを選択して、[**Select (選択)**] を選択します。

1. [**Finish data set creation (データセット作成の終了)**] ダイアログボックスで、[**Import to SPICE for quicker analytics (SPICE にインポートしてクイック分析)**] を選択して、[**Visualize (視覚化)**] を選択します。

   ビジュアライゼーションがレンダリングされます。

# Amazon Athena での事前定義されたクエリの使用
<a name="predefined-queries"></a>

このセクションでは、TCO 分析やネットワークの可視化などの一般的なユースケースを実行する、一連の事前定義されたクエリを示します。これらのクエリをそのまま、あるいは必要に応じて変更して使用できます。

**事前定義されたクエリを使用するには**

1.  AWS Migration Hub コンソールで、ナビゲーションペインで**サーバー**を選択します。

1. Amazon Athena コンソールを開くには、**[Explore data in Amazon Athena]** (Amazon Athena でのデータ探索) を選択します。

1. [**Query Editor (クエリエディタ)**] ページのナビゲーションペインの [**Database (データベース)**] で、**application\$1discovery\$1service\$1database** が選択されていることを確認します。

1. クエリエディタでプラス記号 (**\$1**) を選択して、新しいクエリのタブを作成します。

1. 「[事前に定義されたクエリ](#pq-query-examples)」からいずれかのクエリをコピーします。

1. 作成した新しいクエリタブのクエリウィンドウにそのクエリを貼り付けます。

1. [**Run Query**] (クエリの実行) をクリックします。

## 事前に定義されたクエリ
<a name="pq-query-examples"></a>

タイトルを選択すると、クエリに関する情報が表示されます。

### サーバーの IP アドレスとホスト名を取得する
<a name="pq-helper-function"></a>

このビューヘルパー関数では、特定のサーバーの IP アドレスとホスト名を取得します。このビューは他のクエリで使用できます。ビューを作成する方法については、*Amazon Athena ユーザーガイド*の「[CREATE VIEW](https://docs.aws.amazon.com/athena/latest/ug/create-view.html)」を参照してください。

```
CREATE OR REPLACE VIEW hostname_ip_helper AS 
SELECT DISTINCT
  "os"."host_name"
, "nic"."agent_id"
, "nic"."ip_address"
FROM
  os_info_agent os
, network_interface_agent nic
WHERE ("os"."agent_id" = "nic"."agent_id");
```

### エージェントの有無にかかわらずサーバーを特定する
<a name="pq-agents-installed-or-not"></a>

このクエリは、データ検証を実行するのに役立ちます。ネットワーク内の多数のサーバーにエージェントをデプロイした場合は、このクエリを使用して、エージェントが配置されていない他のサーバーがネットワーク内にあるかどうかを確認できます。このクエリでは、インバウンドとアウトバウンドのネットワークトラフィックを調べ、プライベート IP アドレスについてのみトラフィックをフィルタリングします。つまり、`192`、`10`、`172` で始まる IP アドレスです。

```
SELECT DISTINCT "destination_ip" "IP Address" ,
         (CASE
    WHEN (
    (SELECT "count"(*)
    FROM network_interface_agent
    WHERE ("ip_address" = "destination_ip") ) = 0) THEN
        'no'
        WHEN (
        (SELECT "count"(*)
        FROM network_interface_agent
        WHERE ("ip_address" = "destination_ip") ) > 0) THEN
            'yes' END) "agent_running"
    FROM outbound_connection_agent
WHERE ((("destination_ip" LIKE '192.%')
        OR ("destination_ip" LIKE '10.%'))
        OR ("destination_ip" LIKE '172.%'))
UNION
SELECT DISTINCT "source_ip" "IP ADDRESS" ,
         (CASE
    WHEN (
    (SELECT "count"(*)
    FROM network_interface_agent
    WHERE ("ip_address" = "source_ip") ) = 0) THEN
        'no'
        WHEN (
        (SELECT "count"(*)
        FROM network_interface_agent
        WHERE ("ip_address" = "source_ip") ) > 0) THEN
            'yes' END) "agent_running"
    FROM inbound_connection_agent
WHERE ((("source_ip" LIKE '192.%')
        OR ("source_ip" LIKE '10.%'))
        OR ("source_ip" LIKE '172.%'));
```

### エージェントを使用してサーバーのパフォーマンスデータを分析する
<a name="pq-agents-server-performance"></a>

このクエリを使用して、エージェントがインストールされているオンプレミスサーバーのシステムパフォーマンスと使用パターンデータを分析できます。このクエリでは、`system_performance_agent` テーブルと `os_info_agent` テーブルを組み合わせて、各サーバーのホスト名を識別します。このクエリでは、エージェントが稼働しているすべてのサーバーの時系列の使用状況データ (15 分間隔) が返ります。

```
SELECT "OS"."os_name" "OS Name" ,
    "OS"."os_version" "OS Version" ,
    "OS"."host_name" "Host Name" ,
     "SP"."agent_id" ,
     "SP"."total_num_cores" "Number of Cores" ,
     "SP"."total_num_cpus" "Number of CPU" ,
     "SP"."total_cpu_usage_pct" "CPU Percentage" ,
     "SP"."total_disk_size_in_gb" "Total Storage (GB)" ,
     "SP"."total_disk_free_size_in_gb" "Free Storage (GB)" ,
     ("SP"."total_disk_size_in_gb" - "SP"."total_disk_free_size_in_gb") "Used Storage" ,
     "SP"."total_ram_in_mb" "Total RAM (MB)" ,
     ("SP"."total_ram_in_mb" - "SP"."free_ram_in_mb") "Used RAM (MB)" ,
     "SP"."free_ram_in_mb" "Free RAM (MB)" ,
     "SP"."total_disk_read_ops_per_sec" "Disk Read IOPS" ,
     "SP"."total_disk_bytes_written_per_sec_in_kbps" "Disk Write IOPS" ,
     "SP"."total_network_bytes_read_per_sec_in_kbps" "Network Reads (kbps)" ,
     "SP"."total_network_bytes_written_per_sec_in_kbps" "Network Write (kbps)"
FROM "sys_performance_agent" "SP" , "OS_INFO_agent" "OS"
WHERE ("SP"."agent_id" = "OS"."agent_id") limit 10;
```

### ポート番号とプロセスの詳細に基づいてサーバー間のアウトバウンド通信を追跡する
<a name="pq-analyze-outbound-connections"></a>

このクエリでは、ポート番号とプロセスの詳細と共に、各サービスのアウトバウンドトラフィックの詳細が返されます。

クエリを実行する前に、まだ行っていない場合は、IANA からダウンロードした IANA ポートレジストリデータベースを含む `iana_service_ports_import` テーブルを作成する必要があります。このテーブルを作成する方法については、「[IANA ポートレジストリのインポートテーブルの作成](#pq-create-iana-import-table)」を参照してください。

`iana_service_ports_import` テーブルが作成されたら、アウトバウンドトラフィックを追跡する 2 つのビューヘルパー関数を作成します。ビューを作成する方法については、*Amazon Athena ユーザーガイド*の「[CREATE VIEW](https://docs.aws.amazon.com/athena/latest/ug/create-view.html)」を参照してください。

**アウトバウンド追跡ヘルパー関数を作成するには**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. 個別のアウトバウンド送信先 IP アドレスのすべてをリストする以下のヘルパー関数を使用して、`valid_outbound_ips_helper` ビューを作成します。

   ```
   CREATE OR REPLACE VIEW valid_outbound_ips_helper AS 
   SELECT DISTINCT "destination_ip"
   FROM outbound_connection_agent;
   ```

1. アウトバウンドトラフィックの通信頻度を決定する以下のヘルパー関数を使用して、ビュー `outbound_query_helper` を作成します。

   ```
   CREATE OR REPLACE VIEW outbound_query_helper AS
   SELECT "agent_id" ,
            "source_ip" ,
            "destination_ip" ,
            "destination_port" ,
            "agent_assigned_process_id" ,
            "count"(*) "frequency"
   FROM outbound_connection_agent
   WHERE (("ip_version" = 'IPv4')
           AND ("destination_ip" IN 
       (SELECT *
       FROM valid_outbound_ips_helper )))
   GROUP BY  "agent_id", "source_ip", "destination_ip", "destination_port", "agent_assigned_process_id";
   ```

1. `iana_service_ports_import` テーブルと 2 つのヘルパー関数を作成したら、以下のクエリを実行して、各サービスのアウトバウンドトラフィックの詳細をポート番号とプロセスの詳細と共に取得できます。

   ```
   SELECT hip1.host_name "Source Host Name",
            outbound_connections_results0.source_ip "Source IP Address",
            hip2.host_name "Destination Host Name",
            outbound_connections_results0.destination_ip "Destination IP Address",
            outbound_connections_results0.frequency "Connection Frequency",
            outbound_connections_results0.destination_port "Destination Communication Port",
            outbound_connections_results0.servicename "Process Service Name",
            outbound_connections_results0.description "Process Service Description"
   FROM 
       (SELECT DISTINCT o.source_ip,
            o.destination_ip,
            o.frequency,
            o.destination_port,
            ianap.servicename,
            ianap.description
       FROM outbound_query_helper o, iana_service_ports_import ianap
       WHERE o.destination_port = TRY_CAST(ianap.portnumber AS integer)) AS outbound_connections_results0 LEFT OUTER
   JOIN hostname_ip_helper hip1
       ON outbound_connections_results0.source_ip = hip1.ip_address LEFT OUTER
   JOIN hostname_ip_helper hip2
       ON outbound_connections_results0.destination_ip = hip2.ip_address
   ```

### ポート番号とプロセスの詳細に基づいてサーバー間のインバウンド通信を追跡する
<a name="pq-analyze-inbound-connections"></a>

このクエリでは、ポート番号とプロセスの詳細と共に、各サービスのインバウンドトラフィックに関する情報が返されます。

このクエリを実行する前に、まだ行っていない場合は、IANA からダウンロードした IANA ポートレジストリデータベースを含む `iana_service_ports_import` テーブルを作成する必要があります。このテーブルを作成する方法については、「[IANA ポートレジストリのインポートテーブルの作成](#pq-create-iana-import-table)」を参照してください。

`iana_service_ports_import` テーブルが作成されたら、インバウンドトラフィックを追跡する 2 つのビューヘルパー関数を作成します。ビューを作成する方法については、*Amazon Athena ユーザーガイド*の「[CREATE VIEW](https://docs.aws.amazon.com/athena/latest/ug/create-view.html)」を参照してください。

**インポートの追跡ヘルパー関数を作成するには**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. すべての個別のインバウンド元 IP アドレスのリストを取得する以下のヘルパー関数を使用して、ビュー `valid_inbound_ips_helper` を作成します。

   ```
   CREATE OR REPLACE VIEW valid_inbound_ips_helper AS 
   SELECT DISTINCT "source_ip"
   FROM inbound_connection_agent;
   ```

1. インバウンドトラフィックの通信頻度を決定する以下のヘルパー関数を使用して、ビュー `inbound_query_helper` を作成します。

   ```
   CREATE OR REPLACE VIEW inbound_query_helper AS 
   SELECT "agent_id" ,
            "source_ip" ,
            "destination_ip" ,
            "destination_port" ,
            "agent_assigned_process_id" ,
            "count"(*) "frequency"
   FROM inbound_connection_agent
   WHERE (("ip_version" = 'IPv4')
           AND ("source_ip" IN 
       (SELECT *
       FROM valid_inbound_ips_helper )))
   GROUP BY  "agent_id", "source_ip", "destination_ip", "destination_port", "agent_assigned_process_id";
   ```

1. `iana_service_ports_import` テーブルと 2 つのヘルパー関数を作成したら、以下のクエリを実行して、各サービスのインバウンドトラフィックの詳細をポート番号とプロセスの詳細と共に取得できます。

   ```
   SELECT hip1.host_name "Source Host Name",
            inbound_connections_results0.source_ip "Source IP Address",
            hip2.host_name "Destination Host Name",
            inbound_connections_results0.destination_ip "Destination IP Address",
            inbound_connections_results0.frequency "Connection Frequency",
            inbound_connections_results0.destination_port "Destination Communication Port",
            inbound_connections_results0.servicename "Process Service Name",
            inbound_connections_results0.description "Process Service Description"
   FROM 
       (SELECT DISTINCT i.source_ip,
            i.destination_ip,
            i.frequency,
            i.destination_port,
            ianap.servicename,
            ianap.description
       FROM inbound_query_helper i, iana_service_ports_import ianap
       WHERE i.destination_port = TRY_CAST(ianap.portnumber AS integer)) AS inbound_connections_results0 LEFT OUTER
   JOIN hostname_ip_helper hip1
       ON inbound_connections_results0.source_ip = hip1.ip_address LEFT OUTER
   JOIN hostname_ip_helper hip2
       ON inbound_connections_results0.destination_ip = hip2.ip_address
   ```

### ポート番号から実行中のソフトウェアを特定する
<a name="pq-identify-software"></a>

このクエリでは、ポート番号に基づいて実行中のソフトウェアが識別されます。

このクエリを実行する前に、まだ行っていない場合は、IANA からダウンロードした IANA ポートレジストリデータベースを含む `iana_service_ports_import` テーブルを作成する必要があります。このテーブルを作成する方法については、「[IANA ポートレジストリのインポートテーブルの作成](#pq-create-iana-import-table)」を参照してください。

以下のクエリを実行して、ポート番号に基づき、実行中のソフトウェアを識別します。

```
SELECT o.host_name "Host Name",
       ianap.servicename "Service",
       ianap.description "Description",
       con.destination_port,
       con.cnt_dest_port "Destination Port Count"
FROM   (SELECT agent_id,
               destination_ip,
               destination_port,
               Count(destination_port) cnt_dest_port
        FROM   inbound_connection_agent
        GROUP  BY agent_id,
                  destination_ip,
                  destination_port) con,
       (SELECT agent_id,
               host_name,
               Max("timestamp")
        FROM   os_info_agent
        GROUP  BY agent_id,
                  host_name) o,
       iana_service_ports_import ianap
WHERE  ianap.transportprotocol = 'tcp'
       AND con.destination_ip NOT LIKE '172%'
       AND con.destination_port = ianap.portnumber
       AND con.agent_id = o.agent_id
ORDER BY cnt_dest_port DESC;
```

## IANA ポートレジストリのインポートテーブルの作成
<a name="pq-create-iana-import-table"></a>

事前定義されたクエリによっては、Internet Assigned Numbers Authority (IANA) からダウンロードした情報を含む `iana_service_ports_import` という名前のテーブルが必要になる場合があります。

**iana\$1service\$1ports\$1import テーブルを作成するには**

1. *iana.org* の [Service Name and Transport Protocol Port Number Registry](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml) から IANA ポートレジストリデータベース **CSV** ファイルをダウンロードします。

1. このファイルを Amazon S3 にアップロードします。詳細については、「[S3 バケットにファイルとフォルダをアップロードする方法](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)」を参照してください。

1. Athena で `iana_service_ports_import` という名前の新しいテーブルを作成します。手順については、*Amazon Athena ユーザーガイド*の「[テーブルを作成する](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html#step-2-create-a-table)」を参照してください。以下の例では、`my_bucket_name` を、前の手順で CSV ファイルをアップロードした S3 バケットの名前に置き換える必要があります。

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS iana_service_ports_import (
            ServiceName STRING,
            PortNumber INT,
            TransportProtocol STRING,
            Description STRING,
            Assignee STRING,
            Contact STRING,
            RegistrationDate STRING,
            ModificationDate STRING,
            Reference STRING,
            ServiceCode STRING,
            UnauthorizedUseReported STRING,
            AssignmentNotes STRING
   )
   ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
   WITH SERDEPROPERTIES (
     'serialization.format' = ',',
     'quoteChar' = '"',
     'field.delim' = ','
   ) LOCATION 's3://my_bucket_name/'
   TBLPROPERTIES ('has_encrypted_data'='false',"skip.header.line.count"="1");
   ```