我正在尝试创建表以将EDI数据插入到Cassandra数据库中。众所周知,EDI表中有超过300个字段,创建表的最佳方法是什么。现在我知道我们不需要所有300多个字段,但我们肯定会使用大约100-120个字段,其余字段必须保存,以备将来需要它们。现在,在这120个以上的字段中,我们可能会使用12-15进行搜索。让我们假设这些是一些领域,我们有更多的说接近300 +
货件ID号码日期参考号设备号
出货单名称出货单ID出货单Addr1出货单Addr2出货单城市出货单状态出货单Zip
收货人姓名收货人ID收货人地址收货人收货人2收货人市收货人国家收货人邮编联系人姓名电话
产品编号授权号Lading Desc。提单数量包装代码重量(磅)商品代码
SSCC申请ID
采购订单参考ID单位数量,
A B C D ... .. AA AB AC ...... .. ZZ
现在我们需要这些 身份证号码,参考编号,设备编号,A,AD,GG,...。15作为搜索字段,
现在,在这种情况下建模表的最佳方法是什么。
案例1)将所有字段保存在一个表中。 嗯这听起来不错,但桌子会很大。搜索需要太多的二级索引。如果这是一个好方法或者我的想法是错误的,请告诉我。
案例2)将表拆分为6或7个表,其中包含必要的字段,仅供参考。 说表一:货件ID号码日期参考号设备号收货人名称收货人ID收货人地址收货人地址收货人收货人市收货人国家收货人邮编联系人姓名电话A D FA ...等多达40个字段
假设表1主要使用字段。
说表二:
产品编号授权号Lading Desc。提单数量包装代码重量(磅)商品代码......并说最多200个字段......
假设还有六到七张桌子
有关Case2的问题) 1)如果需要,我如何实现连接。 2)我大多数时候都会阅读建议,将数据去标准化并重复两个表中的字段。 2a)如果是这样我如何将数据插入到这两个字段中我是否以这种方式使用我的代码或者我是否使用其他工具如Spark等。 2b)在这些场景中实现联接的最佳方法是什么。 2c)使用最小二级索引仍然可以实现搜索场景的最佳方法是什么。
我知道这个问题含糊不清,需要很多假设,但如果你能回答这个问题我还是很感激。我更关注我的思维方式。我已经删除了许多笔记,但没有找到任何解决方案。我只是在阅读建议,主要是告诉我使用非规范化数据。但是我们如何实现它。
请尽可能多地做出假设,我会尽力理解,并在需要的地方继续使用Spark和Cassandra。如果可能的话,请尝试尽可能清楚地解释它,以便明确。
我感谢您在回答这些问题时所付出的努力。
由于 汤姆