Microsoft SQL Server和Azure SQL数据库非空间写入参数
数据库连接 |
---|
连接存储身份验证信息。有关共享数据库连接的一般信息,请参阅使用数据库连接. 请注意,数据库连接参数的不同子集可以在不同的上下文中使用。 ![]() 选择一个现有连接,或添加数据库连接定义一个新连接。 新连接只能对当前用户可见,或者可以在多个用户之间共享。 |
连接参数
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
Microsoft SQL Server或Azure SQL数据库的主机名。(如果使用默认配置,则不需要指定端口。)
如果您已配置您的Microsoft SQL Server数据库使用非标准端口号,您可以在这里指定该端口。
正确的语法是:
<主机名>、<端口>
或
< IP >、<端口>
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
要连接的数据库的名称。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
当通过Windows用户帐户连接时,选择Windows身份验证.数据库可以在操作系统中使用Windows主体令牌验证帐户名和密码。
用户帐户由Windows检索,因此如果选择Windows身份验证,则用户名和密码参数被忽略。
选择SQL Server身份验证以通过用户名和密码参数。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
当“身份验证”设置为“SQL Server身份验证”时,需要输入用户名和密码才能访问数据库。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
注意:注意:在Azure SQL数据库读取器和写入器中不存在此参数。Azure SQL数据库读写器和写入器将始终请求SSL加密连接。
选中时,此参数请求连接的SSL加密。如果服务器没有客户端机器信任的证书,连接将失败。否则,数据在网络上传输之前将被加密。有多种方法可以信任客户机机器上的服务器证书。
如果不选择该参数,则加密行为将由为SQL Server Native Client和为SQL Server设置的加密属性决定。
注意:提示:当加密连接,请提供完全限定的服务器名称。例如,一个名为亚搏在线safe-sql-server可能有一个完全限定名亚搏在线safe-sql-server.dev.safe.此完全限定名称应该与受信任证书上的服务器名称完全匹配。
附加格式参数(Workbench Navigator)
在将阅读器或写入器添加到工作区之后,有些参数只能从Workbench Navigator中访问(也就是说,它们在阅读器或写入器参数对话框中不可见)。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
当设置为“是”时,该参数将逐个特性的插入模式更改为批量插入。这可以使插入速度提高6到10倍。妥协是降低错误的粒度,一个无效的特性可能会导致完整事务的失败。
注意:批量插入的速度将随着事务大小的增加而增加(事务越少=插入越快)。更大的事务大小还意味着,如果事务失败,将有更多的行需要重新插入。
在Microsoft Azure SQL Database Non-Spatial (MSSQL_AZURE)中,批量插入非常重要,插入速度提高了300倍。然而,要想在Azure上使用Bulk模式,必须修改Server和Username参数:
- 服务器:tcp: SERVERNAME.database.windows.net
- 用户名:USERNAME@SERVERNAME
其余参数可以保持不变。
注意:大容量插入(默认设置为Yes)会使外键约束失效,以提高加载速度。您可以在Navigator中将该参数设置为No,或者在写入后修复外键约束。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
此参数指定最后一个成功事务的事务号。当第一次加载数据时,将此值设置为0。
这个参数告诉写入器何时开始将特性实际写入数据库。写入器不会写入任何特性,直到传入特性属于某个事务,且该事务的事务号超过指定的事务号。
指定值0(这是通常的设置)将导致输出每个特性。只有当数据加载操作在中途失败后重新开始时,才指定非零值。
此参数对于在事务失败后恢复写入非常有用。日志将打印类似这样的消息:
翻译中止-通过将写入器参数“Transaction to Start Writing At”设置为n重新运行
在哪里n为交易号。事务号是一个整数序列(0、1、2、3等)。在记录其编号的事务中写入的所有特性都将被回滚。
此时,您可能会发现Oracle服务器访问问题或输入特性中的问题,例如违反目标表的主键约束的特性。如果可以在不改变输入特性顺序的情况下解决该问题(例如,恢复对Oracle服务器的访问,或重新生成特性上的主键属性值),则可以按照日志消息中的说明重新运行翻译。
在重新运行过程中,在记录的事务之前的事务中的所有特性都被翻译处理,输入到写入器中,然后被忽略。属于事务数量等于或大于记录的事务数量的特性将被写入目标表。
注意:如果该参数设置为0,则写入所有特性。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
该参数设置在将事务提交到数据库之前在每个事务中放置的特性的数量。
事务间隔使用默认值500。
如果该参数设置为0,则使用基于特性的事务。在编写器处理每个特性时,会检查调用的属性fme_db_transaction.该属性的值指定写入器是否应该提交或回滚当前事务。
属性的值可以是COMMIT_BEFORE,COMMIT_AFTER,ROLLBACK_AFTER或忽略.如果fme_db_transaction属性未在任何特性中设置,则整个写入操作在单个事务中发生。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
如果还没有返回结果,则终止对数据库的查询的时间,以秒为单位。
如果设置为0,则不存在超时。默认为30。
注意:如果这个值设置得不够高,那么查询将返回错误提供程序错误-超时已过期.
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
此参数允许您在打开表之前执行特别的SQL。例如,在尝试读取视图之前,可能需要确保视图存在。
在打开连接从数据库中读取数据时,读取器会查找指令< ReaderKeyword > _BEGIN_SQL {n} (n = 0、1、2……),并在数据库连接上以SQL语句的形式执行每个此类指令的值。
属性指定的字符可以分隔多个SQL命令FME_SQL_DELIMITER指令,嵌入在SQL块的开始部分。这个指令后面的单个字符将用于分割SQL,然后将SQL发送到数据库执行。
注意:字符前要有空格。
例如:
FME_SQL_DELIMITER;删除从讲师;删除姓='Doe',名='John'的人
不允许有多个分隔符,在发送到数据库之前,分隔符字符将被剥离。
在执行这些SQL语句期间发生的任何错误通常都会以错误终止读取器。如果指定的语句前面有连字符(" - "),则此类错误将被忽略。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_ReadersWriters/mssql_ado/../Skins/Default/Stylesheets/Images/transparent.gif)
此参数允许您在关闭一组表之后执行特别的SQL。例如,在写入数据库之后,可能需要清理临时视图。
在关闭数据库上的连接之前,读取器会查找该指令< ReaderKeyword > _END_SQL {n} (n = 0、1、2……),并在数据库连接上以SQL语句的形式执行每个此类指令的值。
可以使用嵌入在SQL块开头的FME_SQL_DELIMITER指令指定的字符来分隔多个SQL命令。这个指令后面的单个字符将用于分割SQL,然后将SQL发送到数据库执行。注意:字符前要有空格。
例如:
FME_SQL_DELIMITER;删除从讲师;删除姓='Doe',名='John'的人
不允许有多个分隔符,在发送到数据库之前,分隔符字符将被剥离。
在执行这些SQL语句期间发生的任何错误通常都会以错误终止读取器。如果指定的语句前面有连字符(" - "),则此类错误将被忽略。