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实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
Python命令启动Web服务器实例详解
Feb 23 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
Python文件读写保存操作的示例代码
Sep 14 Python
在django中自定义字段Field详解
Dec 03 Python
python3 使用traceback定位异常实例
Mar 09 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
pytorch中[..., 0]的用法说明
May 20 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
Python实现的购物车功能示例
2018/02/11 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python邮件发送smtplib使用详解
2020/06/16 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python用for循环求和的方法总结
2019/07/08 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
建筑质检员岗位职责
2015/04/08 职场文书
初中语文教学研修日志
2015/11/13 职场文书
安全生产培训心得体会
2016/01/18 职场文书
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python