我一直得到这个错误(错误代码: 1034 )。表‘/rdsdbdata/tmp/#sql_1709_0’的密钥文件不正确;当我运行以下INSERT语句(或将INSERT语句中的SELECT子句作为单独的SELECT语句运行)时,请尝试修复Amazon中的)。
我需要对INSERT语句(或Aurora 5.7实例或其他AWS生态系统组件)进行哪些更改,以避免出现此错误?(我主要不感兴趣的是如何修复错误消息中引用的临时表--我希望首先避免获取错误,因为这个INSERT语句将作为更大脚本的一部分运行)。
插入语句如下所示:
INSERT INTO GEO_AREA ( Geo_Area_Nm, Geo_Area_Abrv, Geo_Area_Full_Qualfd_Nm, Geo_Area_Full_Qualfd_Abrv,
Geo_Area_Typ_CK, Geo_Area_Prim_ID, Last_Modfd_By_ID, Crtd_By_ID
)
SELECT
Concat("Precinct ", S.PrecinctNumber) AS Geo_Area_Nm, -- The plain Precinct identifier, preceded by the word "Precinct",
-- without any county or state information added.
S.PrecinctNumber AS Geo_Area_Abrv, -- The plain Precinct identifier without any county or state information added.
Concat(S.Jurisname, ", ", STATE.Geo_Area_Nm," - Precinct: ",
S.PrecinctNumber) AS Geo_Area_Full_Qualfd_Nm, -- [Elector Jurisdiction name, State Name:] Precinct: [Precinct ID]
Concat(S.Jurisname, ", ", STATE.Geo_Area_Abrv," - Prcnct: ",
S.PrecinctNumber) AS Geo_Area_Full_Qualfd_Nm, -- [Elector Jurisdiction name, State Name:] Precinct: [Precinct ID]
@Prcnct_CK AS Geo_Area_Typ_CK, -- => Precinct
Concat("US-", S.State, "-",S.Juriscode, "-Prcnct:", S.PrecinctNumber) AS Geo_Area_Prim_ID,
-- Example: US-WY-5602100000-Prcnct:3 08
Max(Concat("DTVF-", S.SourceID)) As Last_Modfd_By_ID,
Max(Concat("DTVF-", S.SourceID)) As Crtd_By_ID
FROM VW_STG_DATA_TRUST_VOTR_INSERT S
LEFT JOIN GEO_AREA STATE -- STATE is the source of the State name and abbreviation that was loaded in Initial LOAD
ON Concat('US-',S.State) = STATE.Geo_Area_Prim_ID
LEFT JOIN GEO_AREA EXIST_GA -- EXIST_GA is the set of records in GEO_AREA before this insert
ON Concat("US-", S.State, "-",S.Juriscode, "-Prcnct:", S.PrecinctNumber) = EXIST_GA.Geo_Area_Prim_ID
WHERE STATE.Geo_Area_Typ_CK = @State_CK -- => Connection for US State level info
-- AND Concat(S.JurisName, ", ", STATE.Geo_Area_Nm) = 'Abbotsford City, Wisconsin'
AND EXIST_GA.Geo_Area_Prim_ID IS NULL
GROUP BY 1,2,3,4,5,6
;--我已经采取了以下步骤来纠正这个问题,但这些步骤都没有奏效:
在同一个Aurora数据库实例中删除和重新创建目标表(GEO_AREA)。
⦁停止并重新启动RDS实例。
创建一个新的Aurora 5.7数据库实例(wpai-archimedes-dev-dbi),并在其中创建和加载一组相当小的表和视图(包括支持该INSERT语句所需的表和视图)。因此,我不认为这是一个磁盘空间问题。
背景:
此INSERT语句(及其内的SELECT语句)从一个包含每人/选民一行的大型暂存表/视图中提取数据,并试图将每个选区的一行加载到地理区域(GEO_AREA)表中。在暂存表/视图中,可以有许多行包含单个选区内的投票者。
GEO_AREA I有两个类似结构的INSERT语句,它们将每个县和选举管辖权加载一行到⦁表中。这两个insert语句正常工作(没有错误)。正确加载县的insert语句示例位于本例描述的底部。
在收到此错误后,我仍然可以对GEO_AREA表运行其他⦁查询,而不会收到错误,例如,
SELECT * FROM GEO_AREA WHERE Geo_Area_Typ_CK in (252, 255) order by 6 desc, 4;用于国家和州/省级地理区域的GEO_AREA行是通过加载数据本地.csv命令从笔记本上的.csv文件加载到⦁中的。
我在两个单独的Aurora MySQL数据库实例中尝试了这个⦁语句。这两种情况下的实例类型都是db.r4.xlarge。第一个DB实例(此技术支持用例中引用的实例)是从一个1.002 GB的.csv文件(来自美国所有50个州的1M记录随机抽样调查)加载的,该文件目前在所有表中使用1.334 GB的存储空间,并显示(在今早快照的结果中)该实例使用了1GB的存储空间。第二个实例是从一个4.623 GB的csv文件(描述田纳西州所有投票者的4m条记录)加载的,该文件目前在所有表中使用3.727 GB的存储空间,并显示(同样地,在今早快照的结果中)实例使用了7GB的存储空间。
发布于 2018-11-18 12:39:29
我发现了这个问题:我在SELECT子句中对两个单独的列使用了相同的别名(Geo_Area_Full_Qualfd_Nm)。我不知道为什么它会产生错误消息(代码1034),它提到了修复临时表。似乎我还记得几周前我在另一种情况下做过同样的事情,得到了一条错误信息,这条信息更加清晰地识别了问题,使我更快地解决了这个问题。
https://stackoverflow.com/questions/53357935
复制相似问题