当前位置: 首页 > 知识库问答 >
问题:

数据库中的文件Snapshot.scala什么?

颛孙麻雀
2023-03-14

我正在数据库集群上运行一些流查询作业,当我查看集群/作业日志时,我看到很多

首先在Snapshot.scala:1

TransactionalWriteEdge.scala:130处的NewExecutionId

快速搜索得到了这个scala脚本https://github.com/delta-io/delta/blob/master/src/main/scala/org/apache/spark/sql/delta/Snapshot.scala有人能用外行的术语解释这是怎么回事吗?

共有1个答案

齐朝明
2023-03-14

在内部,这个类管理存储在检查点或增量文件中的操作的回放

通常,这种“快照”依赖于增量编码,并间接允许快照隔离。

实际上,delta编码会记住自上一个检查点以来执行的每一个副作用操作,如INSERT DELETE UPDATE。对于delta lake,它将是<code>SingleAction</code>(源):AddFile(插入)RemoveFile(删除)。从概念上讲,这种方法接近于事件源——如果没有它,您将不得不在每次更新时存储/广播整个状态(数据库或目录)。它也被许多具有复制功能的经典ACID数据库所采用。

总的来说,它给你:

    < li >能够连续复制文件系统/目录/数据库状态(请参见SnapshotManagement.update)。基本上这就是为什么你在Snapshot.scala:1中看到很多< code > first -它被调用是为了在每次启动事务时赶上日志,参见DeltaLog.startTransaction。我找不到< code > TransactionalWriteEdge 源代码,但我猜它是在同一时间被调用的。 < li >能够通过重放自上次快照以来的每个操作来恢复状态。 < li >能够隔离(和存储)事务,方法是在提交之前将它们的快照分开(每个< code>SingleAction都有txn以便隔离)。Delta-lake为此使用乐观锁定:如果事务日志不可合并,事务提交将失败,而读者看不到未提交的操作。

附言。您可以看到日志在val deltaData=load(files)行被访问,并且操作堆叠在previousSnapshot之上(val checkpoint Data=previousSnapshot.getOrElse(emptyActions);val allActions=checkpointData.union(deltaData)

 类似资料:
  • 问题内容: 是否有任何库在Java中创建使用文件作为数据库的程序,而不必在要使用它的计算机上安装数据库服务? 问题答案: Derby和Hypersonic SQL均可在内存和服务器模式下运行。

  • 这就是我的生活。dat文件看起来像我想知道如何从中提取数据,就像我想让它像1::Toy Story(1995)在单独的列中一样。而且我想在没有熊猫的情况下做这件事,numpy有可能吗

  • 我有一个码头工人。编写文件,当我启动它时,我希望它创建一个包含一些表的数据库。 我的码头工人组成: 项目结构: 实际的 SQL 文件: -- 主机:本地主机 数据库:待办事项 --服务器版本8.0.18 /*!40101 SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /; /! 40101 SET@OLD_CHARACTER_SET_RES

  • 问题内容: 我有一个MySQL数据库,我想知道此数据实际存储在XAMPP文件夹中的确切位置,我转到此文件位置尝试获取信息: 在这里,我为每个数据库找到了一个单独的文件夹,在这些文件夹中,我看到了与一起存储的文件。 当我复制包含所有表的所需数据库并尝试在另一台PC上使用它们时,系统将为我提供一个同名的空数据库。 数据库的数据文件在本地服务器上保存在哪里? 问题答案: 我认为这是您的表格引擎。我猜您正

  • 问题内容: 因此,我不小心格式化了硬盘,重新安装了Windows,却忘记了备份MySQL服务器中的重要数据库。我正在尝试使用某些软件来抢救文件,但是我不知道要寻找什么。 文件的存储路径是什么,文件的名称是什么(我应该寻找什么命名约定或文件扩展名)? 我相信我的服务器正在使用MyISAM,但不是100%肯定。 任何意见,将不胜感激! 问题答案: 您可以检查文件以查看数据文件夹的位置。 通常有一个文件

  • 我有一个h2数据库文件,文件大小已经增长到5GB。我删除了一些数据以缩小文件的大小。但即使从数据库中删除了一半记录,文件大小仍然保持不变。 我已经尝试了以下所有选项来减少数据库大小,但没有一个对我有用。 我的连接字符串如下所示: 注: 我们正在结清我们已经开始的交易 文件中没有5GB的数据 有人能给我建议一些解决方法或修复方法来减少我的数据库大小吗