0

我正在练习在 teradata 中使用 Fastload/Multiload 实用程序来加载具有大约 1500000 条记录的示例信用卡数据。数据被加载到 49k 条记录中,并以错误“MaxErr49923”结束。我附上了加载实用程序屏幕截图以及错误日志文件以及我试图加载的示例平面文件(csv)。此外,日期字段(即发行日期和到期日期)始终填充空值。这是我使用的空表查询。

DATABASE PRACTISE;
CREATE MULTISET TABLE CREDIT_CARD_RECORDS
(
Card_Type_Code VARCHAR(10),
Card_Type_Full_Name VARCHAR (30),
Issuing_Bank VARCHAR (30),
Card_Number BIGINT,
Card_Holders_Name VARCHAR(30),
CVV_CVV2 INT,
Issue_Date DATE FORMAT'DD-MM-YYYY',
Expiry_Date DATE FORMAT'DD-MM-YYYY',
Billing_Date INT,
Card_PIN INT,
Credit_Limit BIGINT
)
PRIMARY INDEX (Card_Holders_Name);

teradata sql 助手中的快速加载工具 错误日志文件详细信息

  .......46703,"VI","Visa","Cabela?s WFB",4285413383016162,"Reita Dancy",834,"05/2017","05/2029",8,1210,170400
46783,"VI","Visa","Cabela?s WFB",4195838028015311,"Gregorio Q Holmberg",979,"01/2017","01/2023",17,0505,96000
46807,"VI","Visa","Cabela?s WFB",4872945616723659,"Wilson O Nichols",620,"10/2014","10/2026",7,2459,100800
46907,"VI","Visa","Cabela?s WFB",4059953506470345,"Grayce D Truelove",151,"12/2017","12/2029",5,6090,107200
46983,"VI","Visa","Cabela?s WFB",4243827234729130,"Hyman O Gonsalves",024,"05/2011","05/2029",10,9488,34100
47327,"VI","Visa","Cabela?s WFB",4029223115017839,"Royce A Rencher",828,"09/2013","09/2024",15,3963,82000
47429,"VI","Visa","Cabela?s WFB",4739490884291546,"Verda Z Tarbell",555,"09/2009","09/2023",27,3917,180900
47431,"VI","Visa","Cabela?s WFB",4807314635184999,"Rose Nall",467,"12/2011","12/2025",17,8725,51900
47605,"VI","Visa","Cabela?s WFB",4616137762819330,"Nikki H Ibarra",875,"11/2012","11/2023",3,0913,134100
47684,"VI","Visa","Cabela?s WFB",4324426783341637,"Edna Ford",462,"12/2009","12/2022",14,0751,196400
47708,"VI","Visa","Cabela?s WFB",4980702571860573,"Dale D Chapman",067,"09/2012","09/2020",20,9449,44800
47711,"VI","Visa","Cabela?s WFB",4188345979583668,"Darren L Parkes",833,"08/2010","08/2018",4,9342,183500
48402,"VI","Visa","Cabela?s WFB",4799378041834042,"Teresa P Delacruz",812,"05/2010","05/2020",13,4389,159600
48540,"VI","Visa","Cabela?s WFB",4515502653866231,"Jeanette W Richmond",228,"11/2010","11/2011",26,5042,17400
49042,"VI","Visa","Cabela?s WFB",4915603258686796,"Keith J Buckley",708,"10/2015","10/2030",15,3182,48100
49473,"VI","Visa","Cabela?s WFB",4771127111386777,"Merrill Vrooman",350,"10/2014","10/2016",6,4282,107700
49762,"VI","Visa","Cabela?s WFB",4242331801902791,"Herbert X Tate",971,"07/2007","07/2012",24,2696,13400
MaxErr49923,"VI","Visa","Cabela?s WFB",4703254908053528,"Jannette O Elsass",729,"03/2013","03/2022",19,8396,97400
RestartRowAt 50002

PS 我知道我已经使用了 MULTISET 表属性,原因是我也需要尝试使用 Multiload。我要加载的文件位于此处的以下链接中。

4

2 回答 2

0

根据总行数和批量大小,teradataml 会将所有剩余行添加到最后一批,然后加载这些行。这意味着最后一批的行数将少于批大小。请提供有关您正在尝试的方案的更多信息。如果您可以提供正在执行的脚本/步骤,那就太好了。这将帮助工程团队最终重现问题并提供修复。

于 2022-01-21T17:26:40.537 回答
0

我认为这是一个错误。我在 python 的最新版本的 Teradataml 包中发现了这个错误。他们将批号错误地设置为num_batches = int(df.shape[0]/batch_size)(Teradataml 版本 17.0.0.4 fastload.py 模块,第 467 行)。它应该 num_batches = int(df.shape[0]/batch_size) + ((df.shape[0] % batch_size) > 0)在 python 中,int函数会向下取整。因此,如果您的总行数不是批次大小的倍数,则不会加载最后一批。我不知道如何让他们知道,但这显然是一个错误。一个快速的解决方法是让你的块大小或批量大小变大,这样所有的东西都将在一批中加载。这就是我现在解决问题的方法。

于 2022-01-19T18:11:00.890 回答