例如,在Apache中,有一个数据如下所示:
struct TabularData {
int A;
int B;
int C;
}
一种方法是设置三个对应的列,并将数据存储在A列、B列和C列中。另一种方法是只设置一个列,并将这个结构TabularData作为一个整体数据设置到这个列中。
因为Arrow是内存中的零拷贝,所以无论是在单个列中还是在嵌套消息中,当我们需要读取A列的数据时,我们都不需要任何内存副本。
我的问题是:拥有多列比将所有数据设置为一列有什么好处?
我们一直在审查微软的现代数据仓库架构,其中提到了使用Azure Data Factory将结构化和非结构化数据拉入Azure Data Lake。我也参加了很多关于这个主题的演讲,但大多数人对data Lake是否是结构化数据的好去处意见不一。我想确定的是,如果我们要利用的唯一来源是本地SQL Server数据库,那么将数据导入到数据湖中是否是一个好策略?那么,该策略的优点/缺点是什么?
就背景而言,我们正在寻找一个单一的消费窗格-无论是使用Power BI的最终用户报告,还是Azure数据仓库/本地数据仓库的素材。我们想要一个容器,它是所有这些系统的源,而不是源OLTP系统(即OLTP数据库
为什么我们必须首先读取结构,修改它,然后将它写回映射?在修改其他数据结构(如映射或切片)中的结构字段时,我是否遗漏了某种隐含的隐藏成本?
编辑:我知道我可以使用指针,但是为什么Go不允许这样做呢?
type dummy struct {
a int
}
x := make(map[int]dummy)
x[1] = dummy{a:1}
x[1].a = 2