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简单计算文件夹大小的方法
Jul 14 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
TensorFlow实现简单卷积神经网络
May 24 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
python实现五子棋小游戏
Mar 25 Python
更新修改后的Python模块方法
Mar 03 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
python numpy 矩阵堆叠实例
Jan 17 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 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
生成缩略图
2006/10/09 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
会计系毕业个人自荐信格式
2013/09/23 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
教师档案管理制度
2014/01/23 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
争做文明公民倡议书
2019/06/24 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript