首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在AWS Opensearch python客户端中使用SQL Access

在AWS Opensearch python客户端中使用SQL Access
EN

Stack Overflow用户
提问于 2022-05-25 07:42:53
回答 1查看 352关注 0票数 0

我很想在AWS OpenSearch中使用SQL。

是否有一种使用opensearchpy驱动程序来实现这个目标的方法?

类似于this SO question

我的尝试:

代码语言:javascript
运行
复制
es = OpenSearch(
    hosts=[{'host': config.es_host, 'port': 443}],
    http_auth=aws_auth,
    use_ssl=True,
    verify_certs=True,
    max_retries=10,
    retry_on_timeout=True,
    connection_class=RequestsHttpConnection
)

es.search(index='user-sessions', body={
    'query': 'select * from user-sessions limit 20'
}

对此注释的...leads:

代码语言:javascript
运行
复制
opensearchpy.exceptions.RequestError: RequestError(400, 'parsing_exception', 'Unknown key for a VALUE_STRING in [query].')

这个也不管用:

代码语言:javascript
运行
复制
es.sql.query(body={
    'query': 'select * from user-sessions limit 20'
})

对于此例外情况,...leads:

代码语言:javascript
运行
复制
AttributeError: 'OpenSearch' object has no attribute 'sql'

有人有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-20 20:12:18

@Ikar:对于AWS Opensearch版本,下面的内容应该适用于您:

代码语言:javascript
运行
复制
response = es.transport.perform_request(
    'POST',
    '/_plugins/_sql',
    body={'query': 'SELECT * from user-sessions LIMIT 50'}
)

print(response)

注意:响应将是一个python字典,在datarows中,您将看到搜索结果的值。

有关更多信息,请查看下面的链接:

  1. https://github.com/opensearch-project/opensearch-py/issues/98
  2. https://opensearch.org/docs/latest/search-plugins/sql/endpoints/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72373703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档