本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
问题排查
数据上传完成后,检查是否跳过了行。为此,请导航到源 CSV 文件的源目录并搜索具有以下名称的文件。
import_
yourcsvfilename
.err.timestamp.csv
cqlsh 将所有跳过的数据行写入同名文件中。如果文件存在于您的源目录中且其中包含数据,则这些行未上传到 Amazon Keyspaces。要重试这些行,请先检查上传期间是否遇到任何错误,然后相应地调整数据。要重试这些行,可以重新运行该进程。
常见错误
未加载行的最常见原因是容量错误和解析错误。
将数据上传到亚马逊Keyspaces 时出现无效的请求错误
在以下示例中,源表包含一个计数器列,该列会导致 cqlsh COPY
命令记录的批处理调用。亚马逊Keyspaces 不支持记录的批量调用。
Failed to import 10 rows: InvalidRequest - Error from server: code=2200 [Invalid query] message=“Only UNLOGGED Batches are supported at this time.“, will retry later, attempt 22 of 25
要纠正这个错误,可以使用 DSBulk 迁移数据。有关更多信息,请参阅教程:使用 DSBulk 将数据加载到亚马逊Keyspaces:
将数据上传到亚马逊Keyspaces 时出现解析器错误
以下示例显示了由于出现而跳过的ParseError
行。
Failed to import 1 rows: ParseError - Invalid ... –
要解决此错误,您需要确保要导入的数据与 Amazon Keyspaces 中的表架构相匹配。查看导入文件中是否存在解析错误。您可以尝试使用单行数据使用INSERT
语句来隔离错误。
将数据上传到亚马逊Keyspaces 时出现容量错误
Failed to import 1 rows: WriteTimeout - Error from server: code=1100 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 2, 'write_type': 'SIMPLE', 'consistency': 'LOCAL_QUORUM'}, will retry later, attempt 1 of 100
Amazon Keyspaces 使用ReadTimeout
和WriteTimeout
异常来指示何时由于吞吐容量不足而导致写入请求失败。为了帮助诊断容量不足的异常,Amazon Keyspaces 在亚马逊CloudWatch上发布WriteThrottleEvents
了ReadThrottledEvents
指标。有关更多信息,请参阅使用亚马逊监控亚马逊Keyspaces CloudWatch:
将数据上传到亚马逊Keyspaces 时出现 cqlsh 错误
要帮助解决 cqlsh 错误,请使用标志重新运行失败的命令。--debug
使用不兼容版本的 cqlsh 时,你会看到以下错误。
AttributeError: 'NoneType' object has no attribute 'is_up' Failed to import 3 rows: AttributeError - 'NoneType' object has no attribute 'is_up', given up after 1 attempts
通过运行以下命令以确认已安装正确版本的 cqlsh。
cqlsh --version
输出应该类似于以下内容。
cqlsh 5.0.1
如果你使用的是 Windows,请将的所有cqlsh
实例替换为cqlsh.bat
。例如,要在 Windows 中检查 cqlsh 版本,请运行以下命令。
cqlsh.bat --version
在 cqlsh 客户端从服务器连续收到三次任何类型的错误后,与 Amazon Keyspaces 的连接失败。cqlsh 客户端失败并显示以下消息。
Failed to import 1 rows: NoHostAvailable - , will retry later, attempt 3 of 100
要解决此错误,您需要确保要导入的数据与 Amazon Keyspaces 中的表架构相匹配。查看导入文件中是否存在解析错误。您可以尝试使用 INSERT 语句使用单行数据来隔离错误。
客户端自动尝试重新建立连接。