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

ES与OpenSearch数据源添加SQL上线功能支持-v0.7-beta #2768

Merged
merged 23 commits into from
Aug 29, 2024

Conversation

feiazifeiazi
Copy link
Contributor

ES和OpenSearch支持上线功能。

示例语句:

#PUT只有索引名,没有api-endpoint时, 解释为创建索引,请求体需要包含mappings或settings。
#PUT有索引名,有_doc,没有Id,错误写法,必须要写Id。

#post 有索引名, 没有_doc,错误写法。报错。
#post 有索引,有_doc,  有或没有id 均可。
#post 有索引,api-endpoint=_search时,这是查询,报错。

#delete 有索引,没有_doc,解释为删除表。 archery禁止此操作,需要报错。
#delete 有索引,有_doc,没有id,删除必须包含id,需要报错。


# api-endpoint为_update时,只能post,不能put,错误写法,报错。
# api-endpoint为_update_by_query时,只能post,不能put,错误写法,报错。


 

#新增带Id
POST /dmp__users/_doc/1
{
  "Code": "A01",
  "Name": "王晓晓",
  "Age": 12,
  "CreateTime": "2024-08-19 12:34:56.7890"
}

#新增带Id
POST /dmp__users/_doc/2 
{
  "Code": "A01",
  "Name": "常建国",
  "Age": 12,
  "CreateTime": "2024-08-19 12:34:56.7890"
}

#新增带Id
POST /dmp__users/_doc/abcd3
{
  "Code": "A01",
  "Name": "常建国abcd3",
  "Age": 12,
  "CreateTime": "2024-08-19 12:34:56.7890"
}


#新增没有Id
POST /dmp__users/_doc 
{
  "Code": "A02",
  "Name": "王小明",
  "Age": 13,
  "CreateTime": "2024-08-19 12:34:56.7890"
}

# 修改全部字段
PUT /dmp__users/_doc/1
{
  "Name": "常建国-只剩下这一个字段了"
}

# 更新现有文档,只会改这一个字段。
POST /dmp__users/_update/2
{
  "doc": {
    "Name": "王晓晓New2"
  }
}


# 更新现有文档,不存在的id,告警。
POST /dmp__users/_update/aa2
{
  "doc": {
    "Name": "王晓晓New2"
  }
}



#新建一个表
PUT /dmp__index1
#新建一个表
PUT /dmp__index2
{
 "settings": {
    "index": {
      "number_of_shards": 2,
      "number_of_replicas": 1
    }
  },
  "mappings": {
    "properties": {
      "Code": {
        "type": "text"
      },
      "Age": {
        "type": "integer"
      },
      "CreateTime": {
        "type": "date"
      }
    }
  }
}
#新建一个表,已经存在的表,告警。
PUT /dmp__index2

#删除数据
DELETE /dmp__users/_doc/abcd3

#删除数据,不存在的id,告警。
DELETE /dmp__users/_doc/a3

#批量修改
POST /dmp__users/_update_by_query
{
  "script": {
    "source": "ctx._source.Age = params.new_value",
    "lang": "painless",
    "params": {
      "new_value": 456133
    }
  },
  "query": {
    "term": {
      "Name.keyword": "王小明"
    }
  }
}

Copy link

codecov bot commented Aug 20, 2024

Codecov Report

Attention: Patch coverage is 86.90476% with 55 lines in your changes missing coverage. Please review.

Project coverage is 78.08%. Comparing base (83c9664) to head (cf71e03).
Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
sql/engines/elasticsearch.py 76.59% 55 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2768      +/-   ##
==========================================
+ Coverage   77.85%   78.08%   +0.23%     
==========================================
  Files         122      122              
  Lines       16892    17311     +419     
==========================================
+ Hits        13151    13518     +367     
- Misses       3741     3793      +52     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@LeoQuote
Copy link
Collaborator

现在还是覆盖率没达标, 我有一个提议, 现在 engine 实际上比较自由, 你可以尝试去做一个 python 的 package, 然后发布到 pypi 上, archery 去装你的包, 然后加载, 就可以达到同样的效果.

好处在代码和发布都是你来控制, CI, 覆盖率, 你想做就做.

当然我也清楚这些代码就不属于 archery 了, 我理解社区就是这样, 我自己也想把 archery 的比较独立的部分能够独立出去, 建立起来一个比较良好的, 可插拔的框架, 方便更多人的定制, 也方便更多人基于这个平台做更多有益于数据安全的事情.

@feiazifeiazi
Copy link
Contributor Author

现在还是覆盖率没达标, 我有一个提议, 现在 engine 实际上比较自由, 你可以尝试去做一个 python 的 package, 然后发布到 pypi 上, archery 去装你的包, 然后加载, 就可以达到同样的效果.

好处在代码和发布都是你来控制, CI, 覆盖率, 你想做就做.

当然我也清楚这些代码就不属于 archery 了, 我理解社区就是这样, 我自己也想把 archery 的比较独立的部分能够独立出去, 建立起来一个比较良好的, 可插拔的框架, 方便更多人的定制, 也方便更多人基于这个平台做更多有益于数据安全的事情.

覆盖率问题是因为单元测试方法还没开始写。
这是Archery该有或可以有的功能,不要以插件的方式吧。应该要原生集成支持,原生插件也行,要归到archery。

@feiazifeiazi
Copy link
Contributor Author

@LeoQuote 帮忙审一下。

@LeoQuote LeoQuote merged commit 29bc308 into hhyo:master Aug 29, 2024
10 checks passed
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

Successfully merging this pull request may close these issues.

2 participants