Python 调用 ES、Solr、Phoenix的示例代码


Posted in Python onNovember 23, 2020
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# *************************************
# @Time  : 2019/8/12
# @Author : Zhang Fan
# @Desc  : Library
# @File  : MyDatabases.py
# @Update : 2019/8/23
# *************************************
import elasticsearch
import phoenixdb
import pysolr
import pymysql


class MyELS(object):
  """
  ===================================================================
  =====================    MyELS    =========================
  ===================================================================
  """
  def __init__(self):
    self.els_conn = None

  def connect_to_els(self, host, port):
    """
    连接到ElasticSearch服务器.
    """
    self.els_conn = elasticsearch.Elasticsearch([{'host': host, 'port': port}])
    print('Executing : Connect To Elastic Search | %s' % self.els_conn)

  def get_els_data(self, query, index):
    """
    获取ElasticSearch数据
    """
    print('Executing : Search | %s' % query)
    try:
      rst = self.els_conn.search(index=index, q=query)
      return rst['hits']
    except Exception as e:
      print('Elastic Search Error | %s' % e)
      raise Exception(e)


class MyPhoenix(object):
  """
  ===================================================================
  =====================    MyPhoenix    ======================
  ===================================================================
  """
  def __init__(self):
    self.phoenix_conn = None
    self.phoenix_cursor = None

  def connect_to_phoenix(self, host, port=8765):
    """
    连接到phoenix服务器
    """
    address = 'http://{0}:{1}/'.format(host, port)
    print('Executing : Connect To Phoenix | %s' % address)
    self.phoenix_conn = phoenixdb.connect(address, autocommit=True)
    self.phoenix_cursor = self.phoenix_conn.cursor()

  def set_schema(self, sql, schema):
    """
    设置schema
    """
    pre_sub, sub, fol_sub = sql.upper().partition('FROM')
    fol_sub = ' ' + schema + '.' + fol_sub.strip()
    new_sql = ''.join([pre_sub, sub, fol_sub])
    return new_sql

  def execute_phoenix_sql(self, sql):
    """
    执行sql语句
    """
    # sql = self.set_schema(sql, schema)
    print('Executing : Execute | %s' % sql)
    self.phoenix_cursor.execute(sql)

  def get_from_phoenix(self, sql):
    """
    获取phoenix数据
    """
    # sql = self.set_schema(sql, schema)
    print('Executing : Query | %s' % sql)
    try:
      self.phoenix_cursor.execute(sql)
    except Exception as e:
      print('Phoenix Error | %s' % e)
      raise Exception(e)
    return self.phoenix_cursor.fetchall()

  def disconnect_from_phoenix(self):
    """
    断开phoenix连接
    """
    print('Executing : Disconnect From HBase')
    self.phoenix_cursor.close()
    self.phoenix_conn.close()


class MySolr(object):
  """
  ===================================================================
  =====================    MySolr    =========================
  ===================================================================
  """
  def __init__(self):
    self.solr_conn = None
    self.base_url = None

  def connect_to_solr(self, address, selector):
    """连接到solr服务器.
    """
    self.base_url = 'http://{0}/solr/{1}/'.format(address, selector)
    self.solr_conn = pysolr.Solr(self.base_url)
    print('Executing : Connect To Solr | %s' % self.base_url)

  def get_solr_data(self, query):
    """
    获取solr数据
    """
    results = list()
    print('Executing : Search | %s' % query)
    try:
      items = self.solr_conn.search(query)
      for item in items:
        results.append(item)
    except Exception as e:
      print('Solr Error | %s' % e)
      raise Exception(e)
    return results

  def add_solr_data(self, data):
    """
    添加solr数据
    """
    print('Executing : add | %s' % data)
    try:
      self.solr_conn.add([data])
      self.solr_conn.commit()
    except Exception as e:
      print('Solr Error | %s' % e)
      raise Exception(e)

  def del_solr_byId(self, data):
    """
    删除solr数据
    """
    print('Executing : del | %s' % data)
    try:
      self.solr_conn.delete(id=data)
      self.solr_conn.commit()
    except Exception as e:
      print('Solr Error | %s' % e)
      raise Exception(e)


if __name__ == '__main__':
  print('This is test.')
  ms = MySolr()
  me = MyELS()
  mp = MyPhoenix()

以上就是Python 调用 ES、Solr、Phoenix的示例代码的详细内容,更多关于Python 调用 ES、Solr、Phoenix的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python深入学习之装饰器
Aug 31 Python
python通过smpt发送邮件的方法
Apr 30 Python
Python中的urllib模块使用详解
Jul 07 Python
详解python开发环境搭建
Dec 16 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
Python collections模块的使用方法
Oct 09 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
10个示例带你掌握python中的元组
Nov 23 #Python
详解anaconda安装步骤
Nov 23 #Python
Python可以用来做什么
Nov 23 #Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 #Python
python里反向传播算法详解
Nov 22 #Python
python动态规划算法实例详解
Nov 22 #Python
python全栈开发语法总结
Nov 22 #Python
You might like
php访问查询mysql数据的三种方法
2006/10/09 PHP
php pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
javascript事件绑定学习要点
2016/03/09 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
详解vue 数据传递的方法
2018/04/19 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python多进程同步简单实现代码
2016/04/27 Python
python学习必备知识汇总
2017/09/08 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Django权限设置及验证方式
2020/05/13 Python
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
学生喝酒检讨书
2014/02/06 职场文书
干部下基层实施方案
2014/03/14 职场文书
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis
python分分钟绘制精美地图海报
2022/02/15 Python
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技