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使用post提交数据到远程url的方法
Apr 29 Python
常用python编程模板汇总
Feb 12 Python
python基础教程之匿名函数lambda
Jan 17 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
python计算导数并绘图的实例
Feb 29 Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
Django分页器的用法你都了解吗
May 26 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中设置index.php文件为只读的方法
2013/02/06 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
javascript 学习之旅 (2)
2009/02/05 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
Python单例模式实例分析
2015/01/14 Python
详解Python的单元测试
2015/04/28 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
python和JavaScript哪个容易上手
2020/06/23 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
Python异常处理机制结构实例解析
2020/07/23 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
艺术应用与设计个人的自我评价
2013/11/23 职场文书
校园招聘策划书
2014/01/09 职场文书
给导游的表扬信
2014/01/10 职场文书
卫生巾广告词
2014/03/18 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
建议书的格式及范文
2015/09/14 职场文书