问题标签 [dremel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
223 浏览

algorithm - 在google的dremel中,top-k查询使用的是什么算法?

Google 的 Dremel 算法支持 top-k 查询。有人能告诉我 top-k 查询使用什么算法吗?

0 投票
1 回答
120 浏览

apache-drill - Dremel 或其实现(例如 Drill)如何处理内存中的大型列式数据布局?

我正在阅读 Google Dremel 的白皮书。我知道它将复杂数据转换为列式数据布局

这些数据存储在什么位置?

由于 Drill 没有中央元数据存储库,我假设它必须是in-memory

因此,当我有数十亿行时,Drill 如何处理这些数据?

0 投票
2 回答
3222 浏览

algorithm - Dremel - 重复和定义级别

阅读Web-Scale Datasets 论文的交互式分析时,我遇到了重复和定义级别的概念。
虽然我理解这两个的必要性,以便能够消除出现的歧义,但它为每个值附加了重复和定义级别。

我不清楚的是他们如何计算水平......

如图所示: 在此处输入图像描述

它说:

考虑图 2 中的字段代码。它在 r1 中出现了 3 次。出现“en-us”和“en”在第一个名称中,而“en-gb”出现在第三个名称中。为了消除这些情况的歧义,我们为每个值附加了一个重复级别。它告诉我们该值在字段路径中的哪个重复字段中重复。


字段路径 Name.Language.Code 包含两个重复的字段,名称和语言。因此,代码的重复级别介于 0 和 2 之间;级别 0 表示新记录的开始。现在假设我们正在自上而下地扫描记录 r1。当我们遇到'en-us' 时,我们没有看到任何重复的字段,即重复级别为0。当我们看到'en' 时,字段Language 已经重复,所以repetitionlevel 为2。

Name.Language.Coder1拥有en-usen价值观方面,我无法绕过它。虽然是第一个r = 0,第二个r = 2是因为重复了两个定义?(语言和代码) ?

如果它是:

可不可能是 ?


定义级别。具有路径 p 的字段的每个值,特别是。每个 NULL 都有一个定义级别,指定 p 中有多少可以未定义的字段(因为它们是可选的或重复的)实际上存在于记录中。

那么为什么定义级别是 2 呢?路径不是Name.Language包含两个字段Code并且Country只有 1optional\repeated吗?

0 投票
0 回答
65 浏览

sql - 循环遍历记录的字段聚合

我在一个票务系统中工作,该系统使用公司的 SQL 版本(类似于 Postgre)将数据导出到报告数据库。我正在寻找一种方法来创建一个语句,该语句提取作为相关票证聚合的行。我在搜索 StackOverflow 或 Google 以获取此答案或类似内容时遇到了麻烦。

票证可以在一个方向上相互关联。如果工单 A 链接到新创建的工单 B,则相关项目表中将出现一行

有时票 B 会与票 C 相关,票 C 与票 D 相关,依此类推。

我可以看到门票 A、B、C、D、E 和 F 是相关的,但我不知道如何提取这些数据来显示这一点。我想查看所有相关票证的字符串并确定此链上的统计信息。我已经尝试在这张桌子上自我加入 5 次,但如果关系达到 6、7 或n票深度怎么办?

我想我想要的是一个可以查看此相关链中的任何票并产生看起来像的行的语句

谢谢

0 投票
0 回答
316 浏览

sql - Dremel SQL:CASE WHEN 2 条件返回太多记录

我想返回一列值在 80 到 91 之间的行。

这是我的查询:

输出是:

我希望 LessThan90 只返回 2 条记录,但它返回 10,这是表中的记录总数。

知道我怎么可以只为 LessThan90 记录 2 条记录吗?

谢谢

0 投票
2 回答
691 浏览

sql - 如何在 BigQuery 中将符号转换为 ASCII(十六进制或十进制)?

URL 没有翻译。例如。& 需要转换为 %26,以便自动生成的 url 在仪表板中填充数据。我试过了castconvertto_code_points都无济于事。

0 投票
1 回答
121 浏览

sql - SQL Server:如何创建列名为 schemaname.columnname 的表

我正在尝试使用以下代码创建表,但列名不显示架构名称。

另外,我试过

有什么建议么?

谢谢你,KP

0 投票
3 回答
49 浏览

sql - 按月查找客户何时满足或超过请求

我有一张有客户的表,我想找出客户在哪一个月遇到或超过了一定数量的请求。

该表有 customer_id 每个请求的时间戳。

我要查找的是客户满足或超过 10000 个请求的月份(或日期)。我试图得到一个运行总数,但这对我不起作用。我把它留在了代码中,以防有人知道我该怎么做。

我所拥有的是以下内容:

我所追求的代表是这样的。

0 投票
0 回答
242 浏览

sql - 分隔列(数组数组) - 高级 SQL 循环

我尝试使用更准确地描述我的问题的名称,但 msg 说我限制为 150 个字符。

寻求具有高级 SQL 技能的人的帮助。理想情况下,我想用 SQL 来让计算机完成工作。太多的手动操作已经成熟,可能会出错。我已经在 Google 中搜索过用户组。所有电子邮件都被退回,说该电子邮件不再存在。我使用的似乎是 Dremel SQL / Google SQL 的专有版本,但是,在 Dremel SQL 方面经验丰富的人可能能够指导我正确的方向。

背景资料:

  • 拉出作为数组列的列,其中包含另一个数组(注释列)。我想也许是一组数组?
  • 我还没有想出一种方法来做我想要用谷歌或 Dremel SQL 做的事情。
  • 所以现在,我正在艰难地做这件事。
  • 正如最初提取的那样,数据看起来像这样 [{Array of arrays}、{Array of arrays}、{Array of arrays} 等,重复...:更具体地说:[{4 个或更多文本字段也可以包含数字并用逗号分隔}、{另一组字段}、{另一组字段}...]

IE(这都是在一列数据和数百行中)

每拉出的行数不同,每行都有特定的 ID # 典型的数据行是:ID #, start_date, end_date, 一些其他字段,notes_(数组字段)

我现在正在做的是:

  1. SQL数据拉取,
  2. 导出到谷歌表格,
  3. 为不同的数组列制作单独的选项卡。
  4. 将注释列(包含数组的数组列)复制到 Google 表格上的单独选项卡,然后
  5. 使用第一个大括号“{”作为分隔符将文本拆分为列。

这就是我的困境所在。拉出后,我需要再次拆分所有这些列以分隔每个数组中的每个单独元素。无法再次将文本拆分为列,并突出显示所有文本。我可以一次将文本再次拆分为列,但如果我必须为每一列和每一行(数百行)单独执行此操作,那真的会很痛苦。需要找到一种方法来自动执行此操作。

我还需要将每个数组中的每个 unix 日期更改为日历日期,并根据第一次拆分的列数将行添加到电子表格中。每行的列不同,具体取决于添加了多少注释。

或者...用 SQL 来做(这似乎是一种类似于 NoSQL 但不一样的专有 SQL 类型)。我已经尝试使用 IBM SQL、Oracle SQL、SQL Server 和其他在线找到的语法,但没有任何作用。

或者...使用 Google 表格中的循环功能来实现。

一旦两组数组完全拆分,可能会将其作为新表重新添加到数据库中。

END RESULT ID#、date1、date 2、首次创建日期(现在是 unix 日期)、第一个注释、第一个其他字段等...

然后从上面添加一个具有相同 ID# 的新行,从上面的行添加 date1,从上面的行添加日期 2,下一个(第二个)创建日期(现在是 unix 日期),第二个注释,第二个其他字​​段,等等...

添加一个新行...第三组注释等。

0 投票
1 回答
72 浏览

sql - 在 Big Query [en,en-uk,en-sv,en-au as EN] 中组合单词(番茄、胡萝卜)和显示区域设置的计数随着时间的推移

我目前正在学习 SQL 并遇到了一个问题。

这个问题与我的许多用例有关。我在 en-uk、en-au、es-latam、es-spain 有语言环境,我想将它们简单地组合为 EN 或 ES 以便随着时间的推移进行报告。

以下是询问如何计算番茄页面浏览量和胡萝卜页面浏览量的示例。

我希望一旦我弄清楚如何做到这一点,我可以将其应用于语言环境。

可以在此电子表格中的 H:L 列中看到预期的输出:https ://docs.google.com/spreadsheets/d/1CNE__ikiHEQHedH0UiSPmRI1s47e7qEH_aJJVtYSSzU/edit?usp=sharing

在开始这段旅程时不熟悉 CASE,但我需要进一步汇总/汇总表中已经存在的数据,以便我可以构建图表。

谁能指出任何优化领域?此外,一个侧面请求:AND url.website like '%tomato%' 或 '%carrot%' (我如何使它成为 OR?)

最后,谁能帮我弄清楚如何使用 NOT CONTAIN in AND url.website 不包含这些单词中的任何一个不区分大小写 (?i) 土豆、蘑菇、芹菜

我来自电子表格背景并且是高级用户,但似乎我很难将这些知识转移到 SQL 中。

非常感谢!如果您有任何问题,请告诉我,

经过多次论坛搜索,我知道我需要在此处插入一个子查询才能获得预期的表。我的目标是随着时间的推移在图表中绘制这些网站页面访问的计数。

[最近编辑]

在右侧显示带有计数编号的 URL

错误代码:在 Group By 中找不到 report.timestamp - 但如果我添加它,我会在一列中得到微秒,以及这些微秒的出现次数。

主要要点是在选择中添加report.timestamp,以便我可以按聚合月份绘制,但是一旦我这样做,计数值就不会相加。

[过去的编辑 2]

[过去的编辑 3]

请参阅公共电子表格中的 H:L 列:https ://docs.google.com/spreadsheets/d/1CNE__ikiHEQHedH0UiSPmRI1s47e7qEH_aJJVtYSSzU/edit?usp=sharing