标注 | 说明 | 数据类型 |
输入表 | 输入表。 | Table View |
输出 SAS 数据集 (libref.tablename) | 输出 SAS 数据集。 以表单 libref.table 形式提供数据集,其中 libref 是 SAS 库的名称,table 是 SAS 表的名称。 | String |
替换 SAS 数据集 (可选) | 指定是否使用输出覆盖现有 SAS 数据集。
| Boolean |
使用属性域和子类型描述 (可选) | 指定输出 SAS 数据集中是否包含域和子类型描述。
| Boolean |
将 SAS 数据集上传到 SAS 云分析服务 (CAS) (可选) | 指定将输出 SAS 数据集上传到 CAS,还是保存在本地 SAS 库中。
| Boolean |
CAS 主机名 URL (可选) | CAS 主机的 URL。 | String |
端口 (可选) | CAS 连接的端口。 | Long |
CAS 用户名 (可选) | CAS 连接的用户名。 | String |
密码 (可选) | CAS 连接的密码。 运行工具后,此密码被隐藏并且不可访问。 | String Hidden |
自定义会话配置文件 (可选) | 文件指定 SAS 会话的自定义配置。 仅自定义本地或远程 SAS 部署需要该文件。 | File |
CAS 授权 (Authinfo) 文件 (可选) | 该文件包含用于连接到 CAS 的身份验证信息。 该文件必须包含连接的用户名和编码密码。 如果提供了文件,则无需再指定 CAS 用户名和密码参数。 | File |
摘要
将表转换为 SAS 数据集。
使用情况
此工具支持与本地计算机上安装的 SAS 桌面版的连接或与 SAS Cloud Analytic Services (CAS) 的连接。 如果您正在使用 CAS,则记录的顺序可能会在转换过程中发生变化。
必须使用自定义会话配置文件参数进行 SAS 的远程部署,例如 Workspace Server、UNIX 和 Mainframe。 如果 SAS 与 ArcGIS AllSource 安装在同一台计算机上,则不需要配置文件。
以表单 libref.tablename 形式提供 SAS 数据集,其中 libref 是 SAS 或 CAS 库的名称,tablename 是 SAS 数据集的名称。 例如,SASUSER.MYTABLE 引用了 SASUSER 库中名为 MYTABLE 的 SAS 数据集。
SAS 库、数据集名称和列名称不区分大小写。 例如,SASUSER.MYTABLE 的处理方式与 sasuser.mytable 和 SASUser.MyTable 相同。
可以转换的记录数取决于计算机的可用内存。
对于本地 SAS 部署,默认情况下可以使用 SASUSER、SASHELP、MAPS、MAPSSAS 和 MAPSGFK 库。 要使用自定义库,必须在 SAS Autoexec 文件中定义 libref。
连接到 CAS 时,可以通过两种方式验证凭据:
- 使用 CAS 用户名和密码参数提供用户名和密码。 密码将被隐藏,无法通过地理处理历史访问。
使用包含用户名和编码密码的 CAS 授权 (Authinfo) 文件参数提供授权 (Authinfo) 文件。 选中此选项,可避免每次运行工具时重新键入密码。
要在每次使用该工具时自动使用 Authinfo 文件,请将该文件命名为 _authinfo(包括下划线)并将其保存在 Windows 主目录中(通常为 C:\Users\<username>)。 该文件可以具有任何文件扩展名,例如 _authinfo.txt 或 _authinfo.netrc。 如果文件存在于主目录中,则 CAS 授权 (Authinfo) 文件参数将自动使用此文件填充。 这样,可以无需每次使用该工具时都浏览至同一 Authinfo 文件。
Authinfo 文件可以包含多个主机和端口的连接信息,对于单个用户连接到单个主机和端口这一最简单的情况,Authinfo 文件只有一行,语法如下:
default user MYUSERNAME password {SAS004}1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
您可以使用 PROC PWENCODE SAS 过程对文件的密码进行编码。
WORK 库是一个临时工作空间,其在 SAS 会话开始时创建,并在会话关闭时删除所有文件。 此工具将在执行期间启动和关闭新的 SAS 会话,因此不应在此工具中使用 WORK 库。
参数
arcpy.conversion.TableToSAS(in_table, out_sas_dataset, {replace_sas_dataset}, {use_domain_and_subtype_description}, {use_cas_connection}, {hostname}, {port}, {username}, {password}, {custom_cfg_file}, {authinfo_file})
名称 | 说明 | 数据类型 |
in_table | 输入表。 | Table View |
out_sas_dataset | 输出 SAS 数据集。 以表单 libref.table 形式提供数据集,其中 libref 是 SAS 库的名称,table 是 SAS 表的名称。 | String |
replace_sas_dataset (可选) | 指定是否在输出中覆盖现有 SAS 数据集。
| Boolean |
use_domain_and_subtype_description (可选) | 指定输出 SAS 数据集中是否包含域和子类型描述。
| Boolean |
use_cas_connection (可选) | 指定将输出 SAS 数据集上传到 CAS,还是保存在本地 SAS 库中。
| Boolean |
hostname (可选) | CAS 主机的 URL。 | String |
port (可选) | CAS 连接的端口。 | Long |
username (可选) | CAS 连接的用户名。 | String |
password (可选) | CAS 连接的密码。 运行工具后,此密码被隐藏并且不可访问。 | String Hidden |
custom_cfg_file (可选) | 文件指定 SAS 会话的自定义配置。 仅自定义本地或远程 SAS 部署需要该文件。 | File |
authinfo_file (可选) | 该文件包含用于连接到 CAS 的身份验证信息。 该文件必须包含连接的用户名和编码密码。 如果提供了文件,则无需再指定 username 和 password 参数。 | File |
代码示例
以下 Python 窗口脚本演示了如何在本地 SAS 安装中使用 TableToSAS 函数。
import arcpy
arcpy.conversion.TableToSAS("MyData", "sasuser.MySASData", "OVERWRITE",
"USE_DOMAIN", "LOCAL_SAS")
以下独立 Python 脚本演示了如何通过与 CAS 的连接使用 TableToSAS 函数。
# Import system modules
import arcpy
import getpass
# Provide tool parameters
in_table = "MyData"
out_SASDS = "casuser.MySASData"
replace_output = "OVERWRITE"
field_domains = "USE_DOMAIN"
connection = "USE_CAS"
hosturl = https://XXX.vdp.sas.com/XXX-XXXXX-default-http/
port = 100
username = "CAS_user"
# Provide password securely
password = getpass.getpass()
try:
# Set the workspace and run the tool.
arcpy.env.workspace = r"C:\\TableToSAS\\MyData.gdb"
arcpy.conversion.TableToSAS(in_table, out_SASDS, replace_output,
field_domains, connection, hosturl, port,
username, password)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())