Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于scql 使用group by 之后产生的数据查询为空的问题 #412

Open
Handikang opened this issue Dec 2, 2024 · 12 comments
Open

Comments

@Handikang
Copy link

版本:0.7.0b1
模式:p2p
在使用scql过程中发现不添加group by会正常出结果,如下图所示
image
但是加上按姓名分组之后会产生查询结果为空的现象,如下图所示
image

我的问题是:
1.这看起来和group by的设置有关,这是会自动过滤掉小于4项的分组信息吗?
2.当前版本是否可以正常处理mysql的varchar类型,我看到其实是会出现查询到的数据后面会有字母乱码出现,如图所示
image

@wangzul
Copy link

wangzul commented Dec 3, 2024

SCQL group by需要数据数量大于等于 group_by_threshold 的组,group_by_threshold默认为4
可参考https://www.secretflow.org.cn/zh-CN/docs/scql/0.9.1b1/reference/lang/mysql-compatibility

@tongke6
Copy link
Collaborator

tongke6 commented Dec 3, 2024

@Handikang 我想确认一下关于你提到的乱码问题,可以补充更多的信息吗?

如果没有复现步骤,我们就很难排查你提的问题。谢谢

@Handikang
Copy link
Author

Handikang commented Dec 4, 2024

针对上述复现:数据源这边name字段是mysql的varchar类型,然后就最基本的查自己这边就会出现这个问题,实际上数据库表中是没有上面图片中的这些英文乱码的,只有姓名。

还有其他关于varchar的问题:
而且当前这边使用达梦作为数据源的时候在输出结果集中出现了这样的错误,这里面的实际数据类型是达梦数据库的varchar类型,这边在创建表的阶段数据库类型为mysql,然后在解析数据结果集的时候报了这样的错误

image

@tongke6 还麻烦看一下

@tongke6
Copy link
Collaborator

tongke6 commented Dec 4, 2024

@Handikang 表的编码是什么,切换到 utf8mb4 试下

@Handikang
Copy link
Author

Handikang commented Dec 5, 2024

@Handikang 表的编码是什么,切换到 utf8mb4 试下

好的,这个mysql varchar的问题解决了,我还有两个问题想请教您

  1. group_by_threshold 的设置默认是4用来过滤掉小于4以下分组项的数据,我可以在broker中修改这个配置的参数么,我这边修改成2或5之后好像没有生效,默认还是过滤控制为4的结果(版本是0.7.0b1)
    2.关于达梦这边varchar结果集乱码的问题,想问一下应该如何解决,因为我看到这边本地达梦数据库字符集是UTF-8,没办法修改为utf8mb4

@tongke6

@wangzul
Copy link

wangzul commented Dec 5, 2024

关于问题一
group_by_threshold是在broker中配置的
配置完成后没有生效,方便发一下你的配置文件看一下吗?

@Handikang
Copy link
Author

Handikang commented Dec 5, 2024

image
@wangzul 这个图片最下面的配置我设置成了5,之前也设置成2过,但感觉似乎没生效

@wangzul
Copy link

wangzul commented Dec 5, 2024

intra_server:
  port: 8080
security_compromise:
  group_by_threshold: 2

这样子配置一下

@Handikang
Copy link
Author

intra_server:
  port: 8080
security_compromise:
  group_by_threshold: 2

这样子配置一下

非常感谢,这块没问题了,还要就是上面提到的达梦的这个问题请问有什么解决方案么
@wangzul

@wangzul
Copy link

wangzul commented Dec 5, 2024

intra_server:
  port: 8080
security_compromise:
  group_by_threshold: 2

这样子配置一下

非常感谢,这块没问题了,还要就是上面提到的达梦的这个问题请问有什么解决方案么 @wangzul

使用达梦数据源的scql服务配置文件提供一下看看。
#SCQLBroker

storage:
  type: 
  conn_str:

#SCQLEngine

--datasource_router=
--embed_router_conf=

@Handikang
Copy link
Author

image
这边是将达梦作为engine数据源来查询时候报的错,上表是达梦数据库数据源当前的编码格式,显示1是UTF-8;并不是作为broker存储的数据源,然后这边也是通过http_route去拿达梦数据源的一些连接信息。

@jingshi-ant
Copy link
Collaborator

方便提供下建表语句吗?确认下表的编码格式是否正确

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants