

AWS 大型机现代化服务（托管运行时环境体验）不再向新客户开放。有关类似于 AWS 大型机现代化服务（托管运行时环境体验）的功能，请浏览 AWS 大型机现代化服务（自我管理体验）。现有客户可以继续正常使用该服务。有关更多信息，请参阅[AWS 大型机现代化可用性变更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS 大型机现代化数据集定义参考
<a name="datasets-m2-definition"></a>

如果您的应用程序需要多个数据集进行处理，则在 AWS 大型机现代化控制台中逐个输入这些数据集效率低下。我们建议您创建一个 JSON 文件来指定每个数据集。尽管许多参数都很常见，但在 JSON 中，要以不同的方式指定不同的数据集类型。本文档描述了导入不同类型数据集所需的 JSON 的详细信息。

**注意**  
在导入任何数据集之前，必须将数据集从大型机传输到 AWS。数据集必须采用可以加载到所选运行时引擎的格式。在许多情况下，这可以是一个顺序文件，但对于 Rocket Software（前身为 Micro Focus）VSAM，它必须采用其专有格式。`DFCONV` 实用程序是转换文件的建议方法。在数据集定义 JSON 文件中指定存储桶和文件夹的名称。  
 有关 Rocket Software 运行时引擎的更多信息，请参阅 R *ocket Softwar* [e 文档中的 DFCONV 批量文件转换](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHCONVS001.html)。  
有关大型机 AWS 转型的更多信息，请参阅[为大型机运行时 AWS 转换设置配置](ba-runtime-config.md)。

**Topics**
+ [常用属性](#datasets-m2-definition-common)
+ [VSAM 数据集请求格式示例](#datasets-m2-definition-vsam)
+ [GDG base 数据集请求格式示例](#datasets-m2-definition-gdg)
+ [PS 或 GDG 生成的数据集请求格式示例](#datasets-m2-definition-ps)
+ [PO 数据集请求格式示例](#datasets-m2-definition-po)

## 常用属性
<a name="datasets-m2-definition-common"></a>

部分参数是所有数据集通用的。这些参数涵盖以下区域：
+ 有关数据集的信息（`datasetName`、`datasetOrg`、`recordLength`、`encoding`）。
+ 有关**从**何处导入的信息，即数据集的源位置。该位置不是大型机上的位置，而是您上传数据集的 Amazon S3 位置的路径 (`externalLocation`)。
+ 有关导入**到**何处的信息，即数据集的目标位置。该位置可以是数据库或文件系统，具体取决于您的运行时引擎。（`storageType` 和 `relativePath`）。
+ 有关数据集类型的信息（特定数据集类型、格式、编码等）。

每个数据集定义都具有相同的 JSON 结构。以下示例 JSON 显示了所有这些通用参数。

```
{
    "dataSet": {
        "storageType": "Database",
        "datasetName": "MFI01V.MFIDEMO.BNKACC",
        "relativePath": "DATA",
        "datasetOrg": {
            "type": {
                type-specific properties
                    ... 
            },
        },
    },
}
```

以下属性是所有数据集的通用属性。

**storageType**  
必需。应用于**目标**位置。指定数据集是存储在数据库中还是文件系统中。可能的值为 `Database` 或 `FileSystem`。  
+ AWS 为大型机运行时引擎进行转换：不支持文件系统。您必须使用数据库。
+ Rocket Software 运行时引擎：都支持数据库和文件系统。你可以使用 Amazon Relational Database Service 或 Amazon Aurora 来管理数据库，使用亚马逊 Elastic File System 或 Amazon FSx for Lustre 来管理文件系统。

**datasetName**  
（必需）指定在大型机上显示的数据集的完全限定名称。

**relativePath**  
（必需）应用于**目标**位置。指定数据集在数据库或文件系统中的相对位置。

**datasetOrg**  
（必需）指定数据集的类型。可能的值为 `vsam`、`gdg`、`ps`、`po` 或 `unknown`。  
+ AWS 大型机运行时引擎的转换：仅支持 VSAM 类型的数据集。
+ Rocket Software 运行时引擎：支持 VSAM、GDG、PS、PO 或未知类型数据集。
**注意**  
如果您的应用程序需要的文件不是 COBOL 数据文件而是 PDF 或其他二进制文件的文件，则可以按如下方式指定它们：  

  ```
  "datasetOrg": {
              "type": PS {
                  "format": U
              },
  ```

## VSAM 数据集请求格式示例
<a name="datasets-m2-definition-vsam"></a>
+ AWS 大型机运行时引擎转换：支持。
+ 火箭软件运行时引擎：支持。

如果要导入 VSAM 数据集，请将 `datasetOrg` 指定为 `vsam`。您的 JSON 应与以下示例类似：

```
{
    "storageType": "Database",
    "datasetName": "AWS.M2.VSAM.KSDS",
    "relativePath": "DATA",
    "datasetOrg": {
        "vsam": {
 
            "encoding": "A",
            "format": "KS",
            "primaryKey": {
                "length": 11,
                "offset": 0
            }
        }
    },
    "recordLength": {
        "min": 300,
        "max": 300
    }
},
"externalLocation": {
    "s3Location": "s3://$M2_DATA_STORE/catalog/data/AWS.M2.VSAM.KSDS.DAT"
}
```

VSAM 数据集支持以下属性。

**编码**  
（必需）指定数据集的字符集编码。可能的值为 ASCII（`A`）、EBCDIC（`E`）和未知（`?`）。

**format**  
（必需）指定 VSAM 数据集类型和记录格式。  
+ AWS 大型机运行时引擎的转换：可能的值为 ESDS (`ES`) 和 KSDS ()。`KS`记录格式可以是固定的，也可以是可变的。
+ Rocket Software 运行时引擎：可能的值是 ESDS (`ES`)、KSDS (`KS`) 和 RRDS ()。`RR`VSAM 定义包括记录格式，因此您无需单独指定它。

**primaryKey**  
（必需）仅适用于 VSAM KSDS 数据集。指定主键。包括主键名称、键偏移和键长度。`name` 为可选项，`offset` 和 `length` 为必需项。

**recordLength**  
（必需）指定记录的长度。对于固定长度的记录格式，这些值必须匹配。  
+ AWS 大型机运行时引擎的转换：对于 VSAM ESDS 和 KSDS，`min`是可选的，是必需的。`max`
+ 火箭软件运行时引擎：`min`和`max`是必需的。

**externalLocation**  
（必需）指定**源**位置：即您上传数据集的 Amazon S3 存储桶。

### AWS Transform 适用于大型机引擎特定的属性
<a name="datasets-m2-definition-vsam-ba"></a>

大型机 AWS 转换运行时引擎支持 VSAM 数据集的压缩。以下示例说明如何在 JSON 中指定此属性。

```
{
    common properties
        ...
        "datasetOrg": {
            "vsam": {
                common properties
                ...
                "compressed": boolean,
                common properties
                ...
            }
        }
}
```

按如下方式指定压缩属性：

**compression**  
（可选）指定此数据集的索引是否存储为压缩值。如果您的数据集很大（通常大于 100 Mb），请考虑将此标志设置为 `true`。

## GDG base 数据集请求格式示例
<a name="datasets-m2-definition-gdg"></a>
+ AWS 大型机运行时引擎转换：不支持。
+ 火箭软件运行时引擎：支持。

如果要导入 GDG base 数据集，请将 `datasetOrg` 指定为 `gdg`。您的 JSON 应与以下示例类似：

```
{
    "storageType": "Database",
    "datasetName": "AWS.M2.GDG",
    "relativePath": "DATA",
    "datasetOrg": {
        "gdg": {
            "limit": "3",
            "rollDisposition": "Scratch and No Empty"
        }
    }
}
```

GDG base 数据集支持以下属性。

**limit**  
（必需）指定活跃生成数或偏差。对于 GDG base 集群，最大值为 255。

**rollDisposition**  
（可选）指定在达到或超过最大值时如何处理生成数据集。可能的值为 `No Scratch and No Empty`、`Scratch and No Empty`、`Scratch and Empty` 或 `No Scratch and Empty`。默认值为 `Scratch and No Empty`。

## PS 或 GDG 生成的数据集请求格式示例
<a name="datasets-m2-definition-ps"></a>
+ AWS 大型机运行时引擎转换：不支持。
+ 火箭软件运行时引擎：支持。

如果要导入 PS 或 GDG 生成数据集，请将 `datasetOrg` 指定为 `ps`。您的 JSON 应与以下示例类似：

```
{
    "storageType": "Database",
    "datasetName": "AWS.M2.PS.FB",
    "relativePath": "DATA",
    "datasetOrg": {
        "ps": {
            "format": "FB",
            "encoding": "A"
        }
    },
    "recordLength": {
        "min": 300,
        "max": 300
    }
},
"externalLocation": {
    "s3Location": "s3://$M2_DATA_STORE/catalog/data/AWS.M2.PS.LSEQ"
}
}
```

PS 或 GDG 生成数据集支持以下属性。

**format**  
（必需）指定数据集记录的格式。可能的值为 `F`、`FA`、`FB`、`FBA`、`FBM`、`FBS`、`FM`、`FS`、`LSEQ`、`U`、`V`、`VA`、`VB`、`VBA`、`VBM`、`VBS`、`VM` 和 `VS`。

**编码**  
（必需）指定数据集的字符集编码。可能的值为 ASCII (`A`)、EBCDIC (`E`) 和未知 (`?`)。

**recordLength**  
（必需）指定记录的长度。必须指定记录的最小 (`min`) 和最大 (`max`) 长度。对于固定长度的记录格式，这些值必须匹配。

**externalLocation**  
（必需）指定**源**位置：即您上传数据集的 Amazon S3 存储桶。

## PO 数据集请求格式示例
<a name="datasets-m2-definition-po"></a>

如果要导入 PO 数据集，请将 `datasetOrg` 指定为 `po`。您的 JSON 应与以下示例类似：

```
{
    "storageType": "Database",
    "datasetName": "AWS.M2.PO.PROC",
    "relativePath": "DATA",
    "datasetOrg": {
        "po": {
            "format": "LSEQ",
            "encoding": "A",
            "memberFileExtensions": ["PRC"]
        }
    },
    "recordLength": {
        "min": 80,
        "max": 80
    }
},
"externalLocation": {
    "s3Location": "s3://$M2_DATA_STORE/source/proc/"
}
}
```

PO 数据集支持以下属性。

**format**  
（必需）指定数据集记录的格式。可能的值为 `F`、`FA`、`FB`、`FBA`、`FBM`、`FBS`、`FM`、`FS`、`LSEQ`、`U`、`V`、`VA`、`VB`、`VBA`、`VBM`、`VBS`、`VM` 和 `VS`。

**编码**  
（必需）指定数据集的字符集编码。可能的值为 ASCII（`A`）、EBCDIC（`E`）和未知（`?`）。

**memberFileExtensions**  
（必需）指定包含一个或多个文件扩展名的数组，支持您指定要包含哪些文件作为 PDS 成员。

**recordLength**  
（可选）指定记录的长度。记录的最小 (`min`) 和最大 (`max`) 长度都是可选的。对于固定长度的记录格式，这些值必须匹配。

**externalLocation**  
（必需）指定**源**位置：即您上传数据集的 Amazon S3 存储桶。

**注意**  
Rocket Software 运行时引擎的当前实现将 PDS 条目添加为动态数据集。