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让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
好用的Python编辑器WingIDE的使用经验总结
Aug 31 Python
Python之str操作方法(详解)
Jun 19 Python
python如何在列表、字典中筛选数据
Mar 19 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
python中sort sorted reverse reversed函数的区别说明
May 11 Python
一个入门级python爬虫教程详解
Jan 27 Python
Python函数中apply、map、applymap的区别
Nov 27 Python
python数字图像处理之图像的批量处理
Jun 28 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
关于手调机和数调机的选择
2021/03/02 无线电
php中截取字符串支持utf-8
2007/01/18 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
php中文验证码实现示例分享
2014/01/12 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
python学习笔记:字典的使用示例详解
2014/06/13 Python
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python函数装饰器实现方法详解
2018/12/22 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
python写日志文件操作类与应用示例
2019/07/01 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
keras中的backend.clip用法
2020/05/22 Python
python如何求圆的面积
2020/07/01 Python
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
项目投资合作意向书
2014/07/29 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
幼师辞职信范文
2015/02/27 职场文书
校运会班级霸气口号
2015/12/24 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
如何Tomcat中使用ipv6地址
2022/05/06 Servers