db2 import 或 load 可以用来填充 DashDB 吗?
Can db2 import or load be used to populate DashDB?
我希望将数百万行批量加载到 DashDB 数据库中。使用 DB2 CLI 连接后,我输入如下命令:
db2 import from rowsToImport.csv of del insert into MY_TABLE
结果:
SQL0551N "DASHXXX" does not have the required authorization or privilege to
perform operation "BIND" on object "NULLID.SQLUAJ19". SQLSTATE=42501
这是 DashDB 的固有限制,还是我的客户端配置不正确?我在尝试 db2 load
:
时收到类似的消息
SQL2019N An error occurred while utilities were being bound to the database.
p.s。我知道用于加载数据的 DashDB 的其余客户端 api - 我特别询问 how/if 可以使用 DB2 命令行作为替代选项来完成批量加载。
根据 dashDB documentation you can use the Command line processor plus (CLPPlus). It is included in the dashDB driver package and provides a command-line user interface that you can use to connect to the dashDB database, BLUDB. You can use CLPPlus to define, edit, and run statements, scripts, and commands. Please take also a look at Connecting CLPPlus to the dashDB database 查看如何连接和使用 CLI。
请注意,在 CLPPlus 中:IMPORT、EXPORT 和 LOAD 命令有一个限制,即处理的文件必须在服务器上:参见 here。因此,您应该首先使用 SCP 将输入加载文件复制到远程服务器上。但是 SSH/SCP 协议对于普通的 dashDB 用户应该被阻止(不可访问)。
只能使用 CLPPlus 中的 IDA LOADGEOSPATIALDATA command 从您的本地计算机将地理空间数据加载到 dashDB。
使用上述命令加载到 dashDB 的文件可以在本地文件系统中,CLPPlus 用户可以访问。
替代方法是:
dashDB REST API(正如您已经提到的)。见 Load delimited data using the REST API and cURL.
直接从 Bluemix 上的 dashDB 仪表板加载 csv。见 Loading data from the desktop into IBM dashDB.
使用 IBM Data Studio 加载 csv。见 dashDB large file load using IBM Data Studio.
根据this technote,NULLID.SQLUAJ19 包属于早期的 DB2 10.1 修复包之一,因此我怀疑您的客户端版本是 10.1。当尝试执行 IMPORT
命令时,它需要绑定一些旧版本的包,因为 dashDB 显然是 DB2 10.5。
您可能想尝试安装最新的 DB2 客户端修复包,因为数据库中可能已经绑定了必要的包。
验证您是否可以 运行 select pkgname from syscat.packages where pkgschema = 'NULLID' and pkgname like 'SQLUA%'
-- 您应该看到 "SQLUAK20",它似乎是 DB2 10.5 中的相应包。
如果这不起作用,您的另一个选择可能是移动到专用的 dashDB 实例,因为您没有足够的权限来绑定入门级共享 dashDB 服务中丢失的包。
我希望将数百万行批量加载到 DashDB 数据库中。使用 DB2 CLI 连接后,我输入如下命令:
db2 import from rowsToImport.csv of del insert into MY_TABLE
结果:
SQL0551N "DASHXXX" does not have the required authorization or privilege to
perform operation "BIND" on object "NULLID.SQLUAJ19". SQLSTATE=42501
这是 DashDB 的固有限制,还是我的客户端配置不正确?我在尝试 db2 load
:
SQL2019N An error occurred while utilities were being bound to the database.
p.s。我知道用于加载数据的 DashDB 的其余客户端 api - 我特别询问 how/if 可以使用 DB2 命令行作为替代选项来完成批量加载。
根据 dashDB documentation you can use the Command line processor plus (CLPPlus). It is included in the dashDB driver package and provides a command-line user interface that you can use to connect to the dashDB database, BLUDB. You can use CLPPlus to define, edit, and run statements, scripts, and commands. Please take also a look at Connecting CLPPlus to the dashDB database 查看如何连接和使用 CLI。
请注意,在 CLPPlus 中:IMPORT、EXPORT 和 LOAD 命令有一个限制,即处理的文件必须在服务器上:参见 here。因此,您应该首先使用 SCP 将输入加载文件复制到远程服务器上。但是 SSH/SCP 协议对于普通的 dashDB 用户应该被阻止(不可访问)。
只能使用 CLPPlus 中的 IDA LOADGEOSPATIALDATA command 从您的本地计算机将地理空间数据加载到 dashDB。 使用上述命令加载到 dashDB 的文件可以在本地文件系统中,CLPPlus 用户可以访问。
替代方法是:
dashDB REST API(正如您已经提到的)。见 Load delimited data using the REST API and cURL.
直接从 Bluemix 上的 dashDB 仪表板加载 csv。见 Loading data from the desktop into IBM dashDB.
使用 IBM Data Studio 加载 csv。见 dashDB large file load using IBM Data Studio.
根据this technote,NULLID.SQLUAJ19 包属于早期的 DB2 10.1 修复包之一,因此我怀疑您的客户端版本是 10.1。当尝试执行 IMPORT
命令时,它需要绑定一些旧版本的包,因为 dashDB 显然是 DB2 10.5。
您可能想尝试安装最新的 DB2 客户端修复包,因为数据库中可能已经绑定了必要的包。
验证您是否可以 运行 select pkgname from syscat.packages where pkgschema = 'NULLID' and pkgname like 'SQLUA%'
-- 您应该看到 "SQLUAK20",它似乎是 DB2 10.5 中的相应包。
如果这不起作用,您的另一个选择可能是移动到专用的 dashDB 实例,因为您没有足够的权限来绑定入门级共享 dashDB 服务中丢失的包。