SQL 2016微软授权价格,企业版数据库
R 不支持的数据类型
在 SQL Server 类型系统支持的数据类型类别中,如果将以下类型传递给 R 代码,则有可能会造成问题:
中列出的数据类型其他部分中的 SQL 类型系统的项目:光标,时间戳, hierarchyid, uniqueidentifier, sql_variant, xml,表
所有空间类型
image
转换结果可能不佳的数据类型
除 datetimeoffset 以外的大多数 datetime 类型应可正常转换
支持大部分数字数据类型,但 money 和smallmoney 的转换可能会失败
支持 varchar,但由于 SQL Server 往往使用 Unicode,因此,我们建议尽量使用 nvarchar 和其他 Unicode 文本数据类型。
RevoScaleR 库中带有 rx 前缀的函数可以处理 SQL 二进制数据类型(binary 和 varbinary),但大多数情况下,需要对这些类型进行特殊处理。 大多数 R 代码无法处理二进制列。
有关 SQL Server 数据类型的详细信息,请参阅数据类型 (Transact-SQL)。
SQL Server 2016 与早期版本中数据类型的变化
Microsoft SQL Server 2016 和 Microsoft Azure SQL 数据库对数据类型转换和其他一些操作做了改进。 其中的大多数改进都提高了处理浮点类型时的精度,同时对*** datetime 类型的操作做了轻微的改变。
使用 130 或更高的数据库兼容级别时,默认会使用这些改进。 但是,如果使用不同的兼容级别,或者使用旧版本连接到数据库,可能会看到数字精度的变化或其他结果。
有关详细信息,(SQL Server 2016 在处理某些数据类型和不常见操作方面所做的改进)。
提前验证 R 和 SQL 数据架构
一般情况下,每当你对特定的数据类型或数据结构在 R 中如何使用有疑问时,请使用 str() 函数获取 R 对象的内部结构和类型。 函数的结果将打印到 R 控制台,并且也在 中的“消息”Management Studio选项卡中的查询结果中可用。
从 R 代码中使用的数据库中检索数据,你始终应该消除无法在 R 中,使用的列,以及不用于分析,例如 GUID (标识符)、 时间戳和用于审核,其他列或沿袭的列所创建的 ETL 过程的信息。
请注意,包含不必要的列可以会***降低 R 代码的性能,尤其是将高基数列用作因子时。 因此,我们建议使用 SQL Server 系统存储过程和信息视图来提前获取给定表的数据类型,并消除或转换不兼容的列。 有关详细信息,如果某个特定的 SQL Server 数据类型不受 R 支持,但你需要在 R 脚本中使用数据列,我们建议在 R 脚本中使用这些数据之前,使用 CAST 和 CONVERT (Transact-SQL) 函数确保数据类型转换按预期执行。