在数据库系统中的批量数据摄取技术方案

技术编号:25092881 阅读:29 留言:0更新日期:2020-07-31 23:38
用于将数据批量摄取到数据库的表中的系统、方法和设备。一种方法包括确定指示从客户端账户接收的将被摄取到数据库中的用户文件的存在的通知。该方法包括识别用户文件中的数据和识别数据库的目标表以接收用户文件中的数据。该方法包括生成指示数据和目标表的摄取任务。该方法包括将摄取任务分配到执行平台的执行节点,其中执行平台包括独立于共同存储数据库数据的多个共享存储设备而操作的多个执行节点。该方法包括在数据由执行节点完全提交到目标表之后在元数据储备库中登记涉及目标表的元数据。

【技术实现步骤摘要】
【国外来华专利技术】在数据库系统中的批量数据摄取相关申请的交叉引用本申请要求于2017年11月27日提交的标题为“SYSTEMS,METHODS,ANDDEVICESFORBATCHDATAINGESTION”的美国临时专利申请序列号62/591,118的优先权,该临时专利通过引用被全部并入本文,包括但不限于在下文中特别出现的那些部分,该通过引用的并入与下面的例外一起被做出:如果上面引用的申请的任何部分与本申请不一致,本申请取代上面引用的申请。
本公开涉及数据库,且更特别地涉及在数据库或表中的数据的增量摄取(ingestion)。背景数据库广泛用于在计算应用中的数据存储和访问。数据库可以包括一个或更多个表,其包括或引用可以使用查询来读取、修改或删除的数据。数据库可以在一个或更多个表中在任何地方存储从小到极大的数据集。该数据可由组织中的各种用户访问,或甚至可用于例如通过网站或应用程序接口(API)来为公共用户服务。计算和存储资源及其底层架构可以在实现理想的数据库性能方面起重要作用。数据可以从一个数据桶被摄取到数据库的一个或更多个表中。各种系统被开本文档来自技高网...

【技术保护点】
1.一种用于将批量数据摄取到数据库中的系统,所述系统包括:/n用于确定指示从客户端账户接收的将被摄取到数据库中的用户文件的存在的通知的装置;/n用于识别所述用户文件中的数据的装置;/n用于识别所述数据库的目标表以接收所述用户文件中的数据的装置;/n用于生成指示所述数据和所述目标表的摄取任务的装置;/n用于将所述摄取任务分配到执行平台的执行节点的装置,其中所述执行平台包括独立于共同存储数据库数据的多个共享存储设备而操作的多个执行节点;以及/n用于在所述数据由所述执行节点完全提交到所述目标表之后在元数据储备库中登记涉及所述目标表的元数据的装置。/n

【技术特征摘要】
【国外来华专利技术】20171127 US 62/591,1181.一种用于将批量数据摄取到数据库中的系统,所述系统包括:
用于确定指示从客户端账户接收的将被摄取到数据库中的用户文件的存在的通知的装置;
用于识别所述用户文件中的数据的装置;
用于识别所述数据库的目标表以接收所述用户文件中的数据的装置;
用于生成指示所述数据和所述目标表的摄取任务的装置;
用于将所述摄取任务分配到执行平台的执行节点的装置,其中所述执行平台包括独立于共同存储数据库数据的多个共享存储设备而操作的多个执行节点;以及
用于在所述数据由所述执行节点完全提交到所述目标表之后在元数据储备库中登记涉及所述目标表的元数据的装置。


2.根据权利要求1所述的系统,还包括用于将所述用户文件提交到客户端账户队列的装置,并且其中用于确定指示所述用户文件的存在的通知的装置包括通过轮询所述客户端账户队列来确定以确定自从上次所述客户端账户队列被轮询以来是否有任何新的用户文件被提交到所述客户端账户队列。


3.根据权利要求1所述的系统,其中,用于确定指示所述用户文件的存在的通知的装置被配置为通过从数据湖接收指示所述用户文件已经被添加的通知来确定。


4.根据权利要求1所述的系统,还包括:
用于识别活动摄取任务的当前总数和活动摄取任务的期望数量的装置;以及
用于通过下列操作中的一个或更多个管理所述执行平台的所述多个执行节点使得活动摄取任务的所述当前总数等于或接近所述活动摄取任务的所述期望数量的装置:
通过移动平均使对所述多个执行节点的需求随着时间的过去而平滑;或者
维护具有多于用于处理所述当前总数的活动摄取任务的所需数量的活动执行节点的执行平台。


5.根据权利要求1所述的系统,还包括用于生成摄取历史的装置,所述摄取历史包括来自一个或更多个用户文件的数据是否成功地存储在所述数据库中的指示,其中所述摄取历史存储在元数据储备库中,并且其中所述摄取历史包括文件名、表标识、文件大小、行计数或摄取错误代码中的一个或更多个。


6.根据权利要求1所述的系统,还包括用于基于一致性散列来将所述用户文件分配到资源管理器的实例的装置,其中所述一致性散列的散列与所述目标表的表标识相关联,以及其中所述资源管理器的实例被分配以管理与所述目标表相关联的所述散列的过程。


7.根据权利要求6所述的系统,还包括用于添加资源管理器的新实例的装置,其中添加所述资源管理器的所述新实例包括划分所述一致性散列的多个散列,并将所述多个散列中的每一个分配到资源管理器的多个实例,使得所述多个实例中的每个实例被分配相等或几乎相等数量的表。


8.根据权利要求1所述的系统,还包括用于将所述用户文件提交到客户端账户队列的装置,并且其中用于生成所述摄取任务的装置被配置为基于在所述客户端账户队列中的工作量来生成一个或更多个摄取任务,其中在所述客户端账户队列中的工作量基于下列项中的一个或更多个来确定:
基于来自所述客户端账户的最近摄取的用户文件的平均大小的用户文件的近似大小;
在所述客户端账户队列中的用户文件的数量;或者
如由所述客户端账户指示的所述用户文件的大小。


9.根据权利要求1所述的系统,其中,通过为所述目标表生成新的微分区来将所述数据提交到所述目标表,其中只有在所述数据完全且成功被插入之后,所述新的微分区才被存储在所述多个共享存储设备中。


10.根据权利要求1所述的系统,其中,用于将所述任务分配到所述执行平台的所述执行节点的装置被配置为通过在下列操作中的一个或更多个时管理由所述执行平台正在处理的任务的总数:
当阈值数量的任务由所述执行平台已经在处理时,延迟将所述摄取任务分配到所述执行节点;
通过延迟将所述摄取任务分配到所述执行节点直到阈值数量的新用户文件已被提交到客户端账户队列为止来构建最佳大小的微分区;
所述用户文件一被提交到所述客户端账户队列,就通过将所述摄取任务分配到所述执行节点来最小化时延;或者
通过延迟将所述摄取任务分配到所述执行节点直到阈值数量的新用户文件已被提交到所述客户端账户队列为止来最小化开始和停止摄取任务的处理开销。


11.根据权利要求10所述的系统,其中,管理由所述执行平台正在处理的任务的所述总数包括平衡多个时延因素以确保客户时延保持在阈值水平以下,同时任务的所述总数被最小化。


12.一种用于将批量数据摄取到数据库中的方法,所述方法包括:
确定指示从客户端账户接收的将被摄取到数据库中的用户文件的存在的通知;
识别所述用户文件中的数据;
识别所述数据库的目标表以接收所述用户文件中的所述数据;
生成指示所述数据和所述目标表的摄取任务;
将所述摄取任务分配到执行平台的执行节点,其中所述执行平台包括独立于共同存储数据库数据的多个共享存储设备而操作的多个执行节点;以及
在所述数据由所述执行节点完全提交到所述目标表之后在元数据储备库中登记涉及所述目标表的元数据。


13.根据权利要求12所述的方法,还包括将所述用户文件提交到客户端账户队列,并且其中确定指示所述用户文件的存在的所述通知包括通过轮询所述客户端账户队列来确定以确定自从上次所述客户端账户队列被轮询以来是否有任何新的用户文件被提交到所述客户端账户队列。


14.根据权利要求12所述的方法,其中,确定指示所述用户文件的存在的所述通知被配置为通过从数据湖接收指示所述用户文件已经被添加的通知来确定。


15.根据权利要求12所述的方法,还包括:
识别活动摄取任务的当前总数和活动摄取任务的期望数量;以及
管理所述执行平台的所述多个执行节点,使得活动摄取任务的所述当前总数通过下列操作中的一个或更多个而等于或接近活动摄取任务的所述期望数量:
通过移动平均使对所述多个执行节点的需求随着时间的过去而平滑;或者
维护具有多于用于处理所述当前总数的活动摄取任务的所需数量的活动执行节点的执行平台。


16.根据权利要求12所述的方法,还包括生成摄取历史,所述摄取历史包括来自一个或更多个用户文件的数据是否成功地存储在所述数据库中的指示,其中所述摄取历史存储在元数据储备库中,并且其中所述摄取历史包括文件名、表标识、文件大小、行计数或摄取错误代码中的一个或更多个。


17.根据权利要求12所述的方法,还包括基于一致性散列来将所述用户文件分配到资源管理器的实例,其中所述一致性...

【专利技术属性】
技术研发人员:黄建生梁嘉兴斯科特·齐格勒余皓玮本诺特·戴奇维勒瓦伦·加内什
申请(专利权)人:斯诺弗雷克公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1