问题描述
calcite 存储库中包含的所有适配器仅支持查询。我发现有一个名为 Something_ID Col1 Desc1_Col2 Desc2_Col2 Desc3_Col2 Desc4_Col2
0 id1 1.1 0.1 2.1 3.1 NaN
1 id2 8.1 1.1 2.1 NaN 5.1
的类,看起来像是用于 C/U/D 操作。是否有任何示例实现了 df=pd.DataFrame({'Something_ID': {0: 'id1',1: 'id1',2: 'id1',3: 'id2',4: 'id2',5: 'id2'},'Description': {0: 'Desc1',1: 'Desc2',2: 'Desc3',3: 'Desc1',4: 'Desc4',5: 'Desc2'},'Col1': {0: 1.1,1: 1.1,2: 1.1,3: 8.1,4: 8.1,5: 8.1},'Col2': {0: 0.1,1: 2.1,2: 3.1,3: 1.1,4: 5.1,5: 2.1},'Col3': {0: 0.3,1: 6.3,2: 9.3,3: 3.3,4: 15.3,5: 6.3},'Col4': {0: 0.6,1: 12.6,2: 18.6,3: 6.6,4: 30.6,5: 12.6}})
?挖了半天也没找到。
解决方法
这应该是可能的,但是 Calcite 代码库中没有执行此操作的适配器。我也不知道有任何第三方适配器这样做了。虽然我说它应该是可能的,但鉴于这不是一个常见的用例,您肯定会遇到一些挑战。
,根据文档是可能的 - https://calcite.apache.org/docs/adapter.html#server
Calcite 的核心模块(calcite-core)支持 SQL 查询(SELECT)和 DML 操作(INSERT、UPDATE、DELETE、MERGE)
你可以在测试中看到一些例子
- https://github.com/apache/calcite/blob/296b84cad4406be03f2db35ce6077ad8fed4fef6/server/src/test/java/org/apache/calcite/test/ServerTest.java#L125
- https://github.com/apache/calcite/blob/4bc916619fd286b2c0cc4d5c653c96a68801d74e/core/src/test/java/org/apache/calcite/test/MultiJdbcSchemaJoinTest.java#L70
- https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql/SqlInsert.java
我建议检查代码并查看这些测试使用的适配器。
我将在几周后自己做这件事,所以如果你到那时还没有弄清楚,我会试着记住在我弄清楚后发布一个更具体的例子:)