Git Product home page Git Product logo

splware / esproc Goto Github PK

View Code? Open in Web Editor NEW
4.4K 59.0 312.0 789.21 MB

esProc SPL is a scripting language for data processing, with well-designed rich library functions and powerful syntax, which can be executed in a Java program through JDBC interface and computing independently.

Home Page: http://doc.scudata.com/esproc/

License: Apache License 2.0

Java 99.99% Shell 0.01%
esproc database sql java dataset cluster-computing

esproc's People

Contributors

barbosa90 avatar bidalong avatar esprocscript avatar liaoxinchuan avatar liwe1980 avatar minimaomi avatar rqwangxiaojun avatar sadikkuzu avatar shenjianrong avatar sln2021 avatar splware avatar wunanraq avatar xiaoqiongbao avatar xjl002 avatar yangcl2021 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esproc's Issues

并发问题

select 字段1 + '#'+字段2 from table_1

我要表达的意思是不支持并发,根本原因是 ExpressionTranslator这个类的 marksList与funcsList 是static对象,这边能优化这个地方么?

java.sql.SQLException: String index out of range: -1
at com.esproc.jdbc.InternalStatement.executeJDBC(InternalStatement.java:286)
at com.esproc.jdbc.InternalStatement$1.run(InternalStatement.java:148)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.AbstractStringBuilder.replace(AbstractStringBuilder.java:851)
at java.lang.StringBuffer.replace(StringBuffer.java:452)
at com.scudata.dm.query.utils.ExpressionTranslator.moveInMarks(ExpressionTranslator.java:257)
at com.scudata.dm.query.utils.ExpressionTranslator.translateExp(ExpressionTranslator.java:115)
at com.scudata.dm.query.SimpleSelect.execute(SimpleSelect.java:6298)
at com.scudata.dm.query.SimpleSelect.query(SimpleSelect.java:3007)
at com.scudata.dm.query.SimpleJoin.query(SimpleJoin.java:5129)
at com.scudata.dm.query.SimpleUnion.query(SimpleUnion.java:84)
at com.scudata.dm.query.SimpleSQL.execute(SimpleSQL.java:140)
at com.scudata.app.common.AppUtil.executeSql(AppUtil.java:198)
at com.esproc.jdbc.JDBCUtil.execute(JDBCUtil.java:398)
at com.esproc.jdbc.InternalStatement.executeJDBC(InternalStatement.java:267)
... 1 common frames omitted

Add Code of Conduct

I am proposing adding a code of conduct since the project does not have one yet!

20221226集算器+最新(2023-3-6)master分支追加数据到组表内存溢出

-------------------------客户端错误----------------------------------------
Caused by: com.scudata.common.RQException: Error in cell B12
null
java.sql.SQLException: Error in cell B11
null
at com.scudata.server.unit.JdbcTask$1.run(JdbcTask.java:127)
Caused by: com.scudata.common.RQException: Error in cell B11
null
at com.scudata.thread.Job.join(Job.java:31)
at com.scudata.dw.ColPhyTable.appendDataBlock(ColPhyTable.java:1043)
at com.scudata.dw.ColPhyTable.appendSorted(ColPhyTable.java:1475)
at com.scudata.dw.ColPhyTable.appendCache(ColPhyTable.java:4795)
at com.scudata.dw.ColPhyTable.append(ColPhyTable.java:1596)
at com.scudata.expression.mfn.dw.Append.calculate(Append.java:40)
at com.scudata.expression.operator.DotOperator.calculate(DotOperator.java:86)
at com.scudata.expression.Expression.calculate(Expression.java:160)
at com.scudata.cellset.datamodel.PgmNormalCell.calculate(PgmNormalCell.java:159)
at com.scudata.cellset.datamodel.PgmCellSet.runNext2(PgmCellSet.java:1949)
at com.scudata.cellset.datamodel.PgmCellSet.execute(PgmCellSet.java:2623)
at com.scudata.cellset.datamodel.PgmCellSet.calculateResult(PgmCellSet.java:2666)
at com.scudata.expression.fn.JDBCCall.calculate(JDBCCall.java:113)
at com.scudata.expression.Expression.calculate(Expression.java:160)
at com.scudata.expression.fn.Eval.calc(Eval.java:93)
at com.esproc.jdbc.JDBCUtil.execute(JDBCUtil.java:193)
at com.esproc.jdbc.JDBCUtil.execute(JDBCUtil.java:94)
at com.scudata.server.unit.JdbcTask$1.run(JdbcTask.java:112)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.scudata.dm.ListBase1.(ListBase1.java:30)
at com.scudata.util.CursorUtil.hashId(CursorUtil.java:636)
at com.scudata.dm.Sequence.id(Sequence.java:2647)
at com.scudata.dw.DataBlockType.checkDict(DataBlockType.java:143)
at com.scudata.dw.DataBlockType.getDataBlockType(DataBlockType.java:130)
at com.scudata.dw.DataBlockWriterJob.writeDataBlock(DataBlockWriterJob.java:67)
at com.scudata.dw.DataBlockWriterJob.writeDataBlock(DataBlockWriterJob.java:294)
at com.scudata.dw.DataBlockWriterJob.run(DataBlockWriterJob.java:43)
at com.scudata.thread.ThreadPool$WorkThread.run(ThreadPool.java:57)

------------------------------------服务端错误--------------------------------------------------
Exception in thread "UnitWorker[JDBC]:Request action:70012
execute connId=131" java.lang.OutOfMemoryError: Java heap space
at com.scudata.dw.BlockLinkWriter.(BlockLinkWriter.java:25)
at com.scudata.dw.ColPhyTable.prepareAppend(ColPhyTable.java:663)
at com.scudata.dw.ColPhyTable.appendCache(ColPhyTable.java:4787)
at com.scudata.dw.ComTable.close(ComTable.java:292)
at com.scudata.dm.ResourceManager.closeResource(ResourceManager.java:29)
at com.scudata.dm.ResourceManager.close(ResourceManager.java:86)
at com.scudata.dm.JobSpace.close(JobSpace.java:210)
at com.scudata.dm.JobSpace.close(JobSpace.java:194)
at com.scudata.dm.JobSpaceManager.closeSpace(JobSpaceManager.java:46)
at com.scudata.server.unit.ConnectionProxy.close(ConnectionProxy.java:91)
at com.scudata.server.IProxy.destroy(IProxy.java:60)
at com.scudata.server.unit.JdbcManager.execute(JdbcManager.java:139)
at com.scudata.parallel.UnitWorker.run(UnitWorker.java:111)
Exception in thread "UnitWorker" java.lang.OutOfMemoryError: Java heap space
Exception in thread "UnitWorker" java.lang.OutOfMemoryError: Java heap space

------------------------服务器ServerConsole.sh修改内存配置----------------------------------------------
内存不断的累加,直到内存溢出,内存不会释放;
image

-----------------------------找到内存溢出日志,希望帮助你们快些解决问题--------------------------------------------------------
image

sqltranslate 无法正确翻译 LEFT(STR, N) 函数

    String oracle_sql = SQLUtil.translate("LEFT(str,1)", "ORACLE");
    System.out.println("oracle_sql:"+oracle_sql);
    输出:oracle_sql:LEFT(str,1)

    推测是因为LEFT既是关键字,又是函数名
    但RIGHT函数是关键字,但运行RIGHT函数是正确的

[建议]esProc项目拆分成多模块

Nop低代码平台中包含了一个开源的**式报表引擎NopReport。我在NopReport中集成了集算器的功能,可以使用SPL为NopReport提供数据。介绍视频 https://www.bilibili.com/video/BV1Km4y1m7y2/。在集成SPL的过程中,我感觉有一些可以改进的地方:

  1. SPL的设计器可以和运行时分开,这样更容易升级到高版本JDK上,也便于集成到Quarkus等框架中,使用GraalVM技术编译为exe。

  2. SPL的配置文件可以按照可逆计算原理进行改造,这样esProcFunctions_zh.xml这样的配置可以内置在jar包中,但是我们需要增强的时候,可以采用如下方式进行扩展

<funcs x:extends="raw:/config/esProcFunctions_zh.xml">
   这里只写扩展配置,可以覆盖系统内置配置
</funcs> 

具体原理可以参见我的文章 XDSL:通用的领域特定语言设计

  1. SPL可以将编译和运行分开。这样编译得到某种AST语法树之后,可以增加一些语义方面的限制和校验,比如限制文件路径必须符合某种模式等。或者在Context上增加一个ResourceLoader机制,把文件获取完全隔离到某个用户可定制的接口中,而不是直接在home目录下拼接子目录。目前的代码实现似乎是有安全漏洞的,通过../../../这种相对路径似乎可以突破目录限制访问到外部目录。

SPL建议增加proxy功能

1、集算器客户端增加网络代理设置,对于一些公司内网来说更友好一些
2、服务器post参数时增加proxy代理选项,感觉这个功能还是很常用的,一般服务器都不会直接连互联网
=httpfile("http://IP:host/scada/v1/uaes/datapoint/history/rawvalue/rtdb/access","{\"nodeIds\":[\"ns=102;s=AI_002_0600.PV\"], "startTime":"2018/6/28 13:10:00", "endTime":"2018/6/28 13:11:0", "returnBounds":"false", "maxSizePerNode":"10"}"; "Content-Type":"application/json")

sqltranslate函数不能正确的翻译 0 参数的函数;例如:TODAY(), NOW()

    版本:
    <dependency>
        <groupId>com.scudata.esproc</groupId>
        <artifactId>esproc</artifactId>
        <version>20230228</version>
    </dependency>
    
    function.xml 中片段:
  <FUNCTION name="TODAY" paramcount="0">
    <INFO dbtype="ORACLE" value="SYSDATE"/>
    <INFO dbtype="SQLSVR" value="GETDATE()"/>
    <INFO dbtype="DB2" value="CURRENT DATE"/>
    <INFO dbtype="MYSQL" value="CURDATE()"/>
    <INFO dbtype="TERADATA" value="DATE"/>
    <INFO dbtype="POSTGRES" value="CURRENT_DATE"/>
    <INFO dbtype="ESPROC" value="now@d()"/>
  </FUNCTION>        

  System.out.println(SQLUtil.translate("TODAY()", "ORACLE"));   输出是 TODAY()  ;不符合 function.xml 中的配置

数据查询异常

image
上图是从mysql数据中获取数据
image
数据中明显是有SP显示的,但查询不到数据,select查询tt=="SP"和其他都试过了,也查不到数据

【建议】xlsimport异常提示优化

=file("F://data/SPL/学习数据.xlsx").xlsimport@t(;,1)

如果excel的第1行没有数据,上面的语句没有任何错误,也没有任何提示。

能否对组表列质量控制

目前看SPL的序列/序表并不要求强数据结构,看文档上提到了泛型性。测试序表的某列取值可以是不同类型,进而生成的集文件和组表也如此,那么问题是能否提供对列类型强约束的选项?即生成组表时支持统一字段类型约束,这样可以保证较高的数据质量。

另外想了解一下,序表(或组表)列允许不同类型的意义何在?毕竟目前处理的结构化数据一般都是规范的,如果不规范通常也无法计算。

集算器 spl 出现卡死现象 疑似 使用 Boolean 类型做为锁导致其它线程都出于等待 !!!

集算器版本 :
社区版:20230228~ 到目前 github 最新的 都有此现象
连接方式 :jdbc 远程计算
这里的远程计算指的是

image

jvm 监控的截图:

image

根据监控的栈提示 找到对应的源代码位置:
com.scudata.server.unit.JdbcTask#executeJDBC

image

时间有限 我大致看了下代码 逻辑是 connection 不一样 ,对应的 JdbcTask 会不一样 看代码的逻辑 应该是想要保证 同一个 JdbcTask 对象 被并发调用的时候进行一个同步 。可是看我的监控截图就会发现 即使 connection 不一样还是 被阻塞了。
本质是因为 Boolean execFinished = false; 这个 java 底层是做了优化的 即用的同一个对象
用 javap 进行字节码查看 底层会调用

image

故就会出现卡死的现象 。推测你们的代码应该是想保证 同一个对象的同步 如果是这样的话 建议换成 其它数据类型来做锁对象 例如可以参考 spring 的 调整成:Object lockCondition= new Object(); 或者 Boolean execFinished = new Boolean(false);
看了 企业版的 20230901版本也有此问题。
我这里还有一个疑问点 ,看你们的代码片段 那段同步逻辑 应该是在等 上面的 new 出来的线程 返回的结果 。既然主线程都要去等这个结果 那我不 new Thread 直接调用 JDBCUtil.execute(cmd, args, context); 不就直接拿到了吗 这样也不用写 下面的同步逻辑 然后 也避免 new Thread 代码的 线程创建、销毁开销 及 cpu 的上下文切换 ,由于不太清楚你们的上下文逻辑 还麻烦解答下。
总结:本地计算是不会有这个问题的 因为没走这个逻辑。 按照实际生产环境来看 远程计算这种模式应该用的多 这样跟业务模块进行解耦。

增加定时调度机制

既然ETL是spl的一个主要场景,能否增加定时调度机制。看新发布的版本中已经有数据工具,可以新建ETL任务,能否继续完善定时调度功能?

【建议】增加存储(组表、集文件)元数据管理

SPL极致性能需结合自己设计的组表和集文件存储方式,那么随着所有采集同步以及加工的数据都转化/生成组表,对组表/集文件(元数据)的管理目前是怎么操作的?是否有类似数据库的元数据管理那样,有专门存储所有组表元数据信息的地方,是否有相应的访问接口可以实时获取组表/集文件的信息(包括有哪些组表、具体某个组表的大小,该组表有哪些列,组表上面创建了哪些索引...)

20230228内存溢出问题

我们昨天使用官网发布的 20230228 进行操作的时候 出现堆溢出 我们分析堆溢出产生的日志文件
a123623d61bace6e875e72e756fe2b8
8f28d0f2488543c77f9ddcf4340163e
定位到是这里有问题 。
0e01340744a4e79fa599c2fcb119010
我大致看了下这里的逻辑 是在判断 string 是否全都是 ASCII码 。 这里能否优化下呢?因为你们调用 getBytes 又会在内存里面 创建一份 byte数组 对象 。如果我理解的没问题 是判断 是不是全都是 ASCII码的话 可以采用判断每个字符的码值就行了 不用在去内存里面创建一份

正则表达式匹配出错

正则表达式
正则表达式匹配出错,和官网示例不一致,官网展示此处为null,而集算器匹配成功

希望官方能开发 IDEA 插件

SPL 用途很广,微服务方面也能用,希望能直接在 IDEA 里新建脚本、编程、调试,并可以和 SpringBoot 之类的项目在同一个工程里,比如,当REST 接口被调用时,能断点调试到 SPL 脚本中的各个格子。

IDEA打不开项目

IDEA日志如下:
2022-09-11 09:05:57,578 [ 23960] ERROR - ect.impl.ProjectFrameAllocator - java.nio.file.InvalidPathException: Illegal char <:> at index 18: com.scudata.esproc:esproc2022.iml java.lang.RuntimeException: java.nio.file.InvalidPathException: Illegal char <:> at index 18: com.scudata.esproc:esproc2022.iml at com.intellij.openapi.application.impl.LaterInvocator.invokeAndWait(LaterInvocator.java:157) at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:450) at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:455) at com.intellij.openapi.externalSystem.importing.AbstractOpenProjectProvider$openProject$options$1.invoke(AbstractOpenProjectProvider.kt:81) at com.intellij.openapi.externalSystem.importing.AbstractOpenProjectProvider$openProject$options$1.invoke(AbstractOpenProjectProvider.kt:27) at com.intellij.openapi.project.impl.ProjectManagerExImpl.prepareProject(ProjectManagerExImpl.kt:283) at com.intellij.openapi.project.impl.ProjectManagerExImpl.access$prepareProject(ProjectManagerExImpl.kt:59) at com.intellij.openapi.project.impl.ProjectManagerExImpl$doOpenAsync$1.invoke(ProjectManagerExImpl.kt:121) at com.intellij.openapi.project.impl.ProjectManagerExImpl$doOpenAsync$1.invoke(ProjectManagerExImpl.kt:59) at com.intellij.openapi.project.impl.ProjectUiFrameAllocator$run$progressRunner$1.apply(ProjectFrameAllocator.kt:94) at com.intellij.openapi.project.impl.ProjectUiFrameAllocator$run$progressRunner$1.apply(ProjectFrameAllocator.kt:71) at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:244) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175) at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:244) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 18: com.scudata.esproc:esproc2022.iml at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229) at java.base/java.nio.file.Path.resolve(Path.java:515) at com.intellij.configurationStore.ModuleStateStorageManager.rename(ModuleStateStorageManager.kt:40) at com.intellij.openapi.module.impl.ModuleImpl.rename(ModuleImpl.java:164) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleBridgeImpl.rename(ModuleBridgeImpl.kt:70) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleBridgeImpl.rename(ModuleBridgeImpl.kt:65) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge.processModuleChange(ModuleManagerComponentBridge.kt:218) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge.access$processModuleChange(ModuleManagerComponentBridge.kt:45) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge$2$changed$1.invoke(ModuleManagerComponentBridge.kt:126) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge$2$changed$1.invoke(ModuleManagerComponentBridge.kt:74) at com.intellij.workspaceModel.ide.impl.UtilsKt.executeOrQueueOnDispatchThread(utils.kt:13) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerComponentBridge$2.changed(ModuleManagerComponentBridge.kt:102) at com.intellij.workspaceModel.ide.WorkspaceModelTopics$EventsDispatcher.changed(WorkspaceModelTopics.kt:118) at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645) at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620) at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372) at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33) at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179) at com.sun.proxy.$Proxy64.changed(Unknown Source) at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl.onChanged(WorkspaceModelImpl.kt:112) at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl.access$onChanged(WorkspaceModelImpl.kt:19) at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl$updateProjectModel$2.invoke(WorkspaceModelImpl.kt:75) at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl$updateProjectModel$2.invoke(WorkspaceModelImpl.kt:19) at com.intellij.workspaceModel.storage.impl.VersionedEntityStorageImpl.replace(VersionedEntityStorageImpl.kt:183) at com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl.updateProjectModel(WorkspaceModelImpl.kt:75) at com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModifiableModuleModelBridgeImpl.commit(ModifiableModuleModelBridgeImpl.kt:233) at org.jetbrains.idea.maven.wizards.MavenProjectBuilder.renameModuleToProjectName(MavenProjectBuilder.java:270) at org.jetbrains.idea.maven.wizards.MavenProjectBuilder.lambda$createDummyModule$3(MavenProjectBuilder.java:259) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:935) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:961) at com.intellij.openapi.application.WriteAction.compute(WriteAction.java:96) at org.jetbrains.idea.maven.wizards.MavenProjectBuilder.createDummyModule(MavenProjectBuilder.java:253) at org.jetbrains.idea.maven.wizards.MavenProjectBuilder.commit(MavenProjectBuilder.java:217) at com.intellij.projectImport.ProjectImportBuilder.commit(ProjectImportBuilder.java:49) at org.jetbrains.idea.maven.wizards.MavenOpenProjectProvider.linkToExistingProject(MavenOpenProjectProvider.kt:29) at com.intellij.openapi.externalSystem.importing.AbstractOpenProjectProvider$openProject$options$1$1.run(AbstractOpenProjectProvider.kt:82) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214) at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeAndWait$7(ApplicationImpl.java:450) at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:134) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:131) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47) at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:187) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:760) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492) at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:951) at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$6(ProgressWindow.java:221) at com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:831) at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:217) at com.intellij.openapi.progress.impl.ProgressRunner.lambda$execFromEDT$6(ProgressRunner.java:321) at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753) at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731) at java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108) at com.intellij.openapi.progress.impl.ProgressRunner.execFromEDT(ProgressRunner.java:318) at com.intellij.openapi.progress.impl.ProgressRunner.submit(ProgressRunner.java:259) at com.intellij.openapi.progress.impl.ProgressRunner.submitAndGet(ProgressRunner.java:185) at com.intellij.openapi.project.impl.ProjectUiFrameAllocator.run(ProjectFrameAllocator.kt:116) at com.intellij.openapi.project.impl.ProjectManagerExImpl.doOpenAsync(ProjectManagerExImpl.kt:117) at com.intellij.openapi.project.impl.ProjectManagerExImpl.openProjectAsync(ProjectManagerExImpl.kt:108) at com.intellij.openapi.project.impl.ProjectManagerExImpl.openProject(ProjectManagerExImpl.kt:75) at com.intellij.openapi.externalSystem.importing.AbstractOpenProjectProvider.openProject(AbstractOpenProjectProvider.kt:89) at org.jetbrains.idea.maven.wizards.MavenProjectOpenProcessor.doOpenProject(MavenProjectOpenProcessor.kt:19) at com.intellij.ide.impl.ProjectUtil.lambda$chooseProcessorAndOpenAsync$12(ProjectUtil.java:361) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214) at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:348) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:131) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47) at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:187) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:760) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 2022-09-11 09:05:57,584 [ 23966] ERROR - ect.impl.ProjectFrameAllocator - IntelliJ IDEA 2021.3 Build #IC-213.5744.223 2022-09-11 09:05:57,603 [ 23985] ERROR - ect.impl.ProjectFrameAllocator - JDK: 11.0.13; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 2022-09-11 09:05:57,604 [ 23986] ERROR - ect.impl.ProjectFrameAllocator - OS: Windows 11 2022-09-11 09:05:57,605 [ 23987] ERROR - ect.impl.ProjectFrameAllocator - Last Action: OpenFile 2022-09-11 09:05:57,649 [ 24031] INFO - erver.followMe.FollowMeManager - Register new user 0:'lidon' with ClientId=ClientId(value=Host) 2022-09-11 09:06:02,408 [ 28790] INFO - rationStore.ComponentStoreImpl - Saving appFileTypeManager took 17 ms, LuaSettings took 69 ms

【建议】异常提示信息优化

语句:=file("f:/data.btx").import@b();
报错提示:表达式:file("f:/data.btx").import@b(); 不能有分号中不能识别的表达式:;
有点语句不通顺,不容易get重点,建议优化

本地JSON文件,select字段错位问题

你好,今天简单运行了个demo测试,我是从本地JSON文件读取的JSON数组,select 某个指定的列发现数据错位了

1-数据JSON:
[
{
"TYPE":"Y",
"INDEX_NAME":"测试1"
},
{
"TYPE":"N",
"INDEX_NAME":"测试2"
}
]

2-执行SQL:
ResultSet rst = st.executeQuery("$() select INDEX_NAME from /Users/kilogram/Desktop/spl.json");

3-结果截图

INDEX_NAME
Y
N

IDE能否增加运行时间输出

运行脚本的时候能否自动输出脚本运行时间,而不用每次都手动写。比如默认输出整个脚本的运行时间,如果执行某个格子或执行到光标则输出当前执行时间;如果能把每个格子的运行时间都显示出来不知道是不是会更好。更进一步,jar包集成或服务端日志也能输出运行时间

rename函数bug 远程计算会失败

版本:20230228
代码示例:
String spl= "===file("D:\\IdeaProjects\\datasource-client\\esProc\\file\\ctx\\REGIONV20230228.ctx").open()" +
"\n>423ww=A1.cursor(R_COMMENT,R_NAME,R_REGIONKEY).fetch()" +
"\n>423ww.rename(R_COMMENT:N_COMMENT,R_NAME:N_NAME,R_REGIONKEY:N_REGIONKEY)\nreturn 423ww";
本地计算是没有问题的 当进行远程计算的时候 由于记录的主键信息 还是 之前的字段 导致在反序列化的时候报错。


image


image
希望尽快修复 我们正打算交付产品给的客户 感激不尽 不然就得走回本地计算

【强力建议】集算器增加连接池功能

springboot连接集算器后,每次调用都要打开和关闭;现在我打开之后,先不关闭,导致每次都创建很多连接报内存溢出异常。
4b76b740063b432fddc2eb207f96b4a
分析如下:
b033fc2b7639c410b940d7f31513f15

想期望一次open,等处理完所有批数据后再关闭;

MySql高版本报错caching_sha2_password

MySql 高版本(8.0.20) 链接 提示:
SEVERE: java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.
java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

插件如何导入安装呢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.