- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 MemSQL 中有一个 columnstore 表,它具有类似于下面的架构:
CREATE TABLE key_metrics (
source_id TEXT,
date TEXT,
metric1 FLOAT,
metric2 FLOAT,
…
SHARD KEY (source_id, date) USING CLUSTERED COLUMNSTORE
);
我有一个查询 MemSQL 表的 Spark 应用程序(与 Spark 作业服务器一起运行)。下面是我正在执行的那种 Dataframe 操作的简化形式(在 Scala 中):
sparkSession
.read
.format(“com.memsql.spark.connector”)
.options( Map (“path” -> “dbName.key_metrics”))
.load()
.filter(col(“source_id”).equalTo(“12345678”)
.filter(col(“date”)).isin(Seq(“2019-02-01”, “2019-02-02”, “2019-02-03”))
我已经通过查看物理计划确认这些过滤谓词正在被推送到 MemSQL。
我还检查了表中分区的分布是否相当均匀:
±--------------±----------------±-------------±-------±-----------+
| DATABASE_NAME | TABLE_NAME | PARTITION_ID | ROWS | MEMORY_USE |
±--------------±----------------±-------------±-------±-----------+
| dbName | key_metrics | 0 | 784012 | 0 |
| dbName | key_metrics | 1 | 778441 | 0 |
| dbName | key_metrics | 2 | 671606 | 0 |
| dbName | key_metrics | 3 | 748569 | 0 |
| dbName | key_metrics | 4 | 622241 | 0 |
| dbName | key_metrics | 5 | 739029 | 0 |
| dbName | key_metrics | 6 | 955205 | 0 |
| dbName | key_metrics | 7 | 751677 | 0 |
±--------------±----------------±-------------±-------±-----------+
我的问题是关于分区下推。据我了解,有了它,我们可以使用机器的所有核心并利用并行性进行批量加载。根据文档,这是通过创建与 MemSQL 数据库分区一样多的 Spark 任务来完成的。
但是,当运行 Spark 管道并观察 Spark UI 时,似乎只创建了一个 Spark 任务,它对在单个内核上运行的数据库进行单个查询。
我已确保还设置了以下属性:
spark.memsql.disablePartitionPushdown = false
spark.memsql.defaultDatabase = “dbName”
我对分区下推的理解有误吗?我还缺少其他配置吗?
非常感谢您对此的投入。
谢谢!
最佳答案
单一存储凭据必须在所有节点上都相同才能利用分区下推。
如果您在所有节点上都具有相同的凭据,请尝试安装最新版本的 spark 连接器。
因为经常会因为 spark connector 和 singlestore 的兼容性问题而出现。
关于scala - 使用 MemSQL 中的分区下推在 Spark 中启用并行化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882716/
我正在尝试使用 golang 在 memsql 中执行查询。但我不断出错。“MemSQL 不支持服务器端准备好的语句。” 我什至使用了“interpolateParams=true”,但仍然出现同样的
这里提到的错误:http://docs.memsql.com/latest/tshoot/2002/我正在使用 Ubuntu 14.04.2。 MySQL 客户端和最新的 MemSQL 建议将“my.
我发现 MEMSql 不支持用户定义的变量 ( source )。 有什么解决方法吗?它会出现在未来的版本中吗? 我想通过用户定义的变量进行SQL 注入(inject)保护。还有其他好的方法吗? 最佳
我有一个 MemSQL 集群,它有 1 个主聚合器和 3 个叶节点。主聚合器和 3 个叶节点分别运行在不同的服务器上,因此总共有 4 个服务器。 每天,主聚合器服务器上都会运行一个进程,该进程会截断
我有一种情况,我需要一个代理键 (id) 来代替复合键(4 个字段组合起来是唯一的:project_id、dataset_id、table_id、view_name) 以便在其他表中轻松引用它。 为此
在CentOS x64上遵循Quick-Start Guide to installMemSQL,4核,12 GB RAM。 当运行./install.sh作为root时,MemSQL会成功安装,但会
MySQL 似乎也有相同的 4096 列限制。有什么方法可以覆盖它并创建更大的表,例如。列存储格式? 最佳答案 MemSQL 中的列限制目前为 4096,并且不可调整。解决它的最佳方法是使用 JSON
我在一台机器上安装了 Memsql 功能测试,聚合节点位于端口 3307 和叶节点 3306。在运行查询时,可能会有额外的 CPU 可用。因此,是否可以在同一台机器上添加更多叶节点以利用可用资源? 我
我是 MemSQL 新手。我在具有 5 个叶节点和 2 个聚合器节点的集群上的 MemSQL 中创建了一个数据库和表。 Spark 正在同一个集群上运行。一切都处于默认模式。插入数据和删除数据相同。
我在 Ubuntu 14 LTS 上安装了 MemSQL 的单服务器集群。我无法连接到端口 3306 上的 memsql,但集群正在端口 9000 上运行。好像一片叶子掉下来了。当我尝试将 memsq
新的MemSQL版本可以计算多边形的并集吗?例如计算两个相邻甚至截取多边形的边界? +----+ | | | +-+--+ +--+-+ | | | +----+ 到 +-
我想在 memsql 中有一个完整的外部联接。就像是 SELECT * FROM A FULL OUTER JOIN B ON A.id = B.id 是否可以 ? 最佳答案 MemSQL 似乎没有
我们有两个表: dates 表,包含过去 10 年和 future 10 年的每天一个日期。 states 表包含以下列:start_date、end_date、state。 我们运行的查询如下所示:
我正在使用 Liquibase 来管理我的数据库迁移。与导致问题的 MySQL 相比,MemSQL 命令似乎有所不同。 我正在通过 Liquibase 运行以下命令:- ALTER TABLE tes
我们使用 memsql 列式存储数据库。我们为后端架构中的每个“偶数类型”创建管道,并为其创建一个专用表(我们称之为“源表”)。因此每个管道都会写入 memsql 上的一张表(也称为源表) 我们为客户
我正在 memsql 上尝试 TPCH DDL 查询。我是 memsql 的新手。我无法将 5 个 TPCH ddl sql 查询转换为 memsql 查询。无法使用 memsql 的 FOREIGH
我正在尝试将 blob 插入到我的 MemSQL 数据库中。 这是我插入源代码的地方,所以我将它转换成一个 blob: byte[] bytes = rs.getString(2).getBytes(
我需要首先指出,我绝不是数据库专家。我确实知道如何使用需要数据库后端的多种语言来编写应用程序,并且对 MySQL、Microsoft SQL Server 和现在的 MEMSQL 相对熟悉——但同样,
将节点(叶节点或聚合器)添加到 memSQL 集群非常简单:我编辑了 memsql_cluster.json 并重新运行 memsql-cluster 设置。问题是向现有表添加分区。这里的要点是向上扩
我想使用 GORM 域对象在我的 MemSQL 数据库中创建一个引用表。这将允许我们的 Grails 服务器在 MemSQL 中创建/删除引用表以进行开发。 除了在表上指定主键之外,是否可以使用 GO
我是一名优秀的程序员,十分优秀!