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 27 Python
python实现批量改文件名称的方法
May 25 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
让python在hadoop上跑起来
Jan 27 Python
Python设置默认编码为utf8的方法
Jul 01 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
python画双y轴图像的示例代码
Jul 07 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
Python csv文件记录流程代码解析
Jul 16 Python
Python 高效编程技巧分享
Sep 10 Python
能让Python提速超40倍的神器Cython详解
Jun 24 Python
LeetCode189轮转数组python示例
Aug 05 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入门小知识
2008/03/24 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
Python2包含中文报错的解决方法
2018/07/09 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
python安装requests库的实例代码
2019/06/25 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
基本款天堂:Everlane
2017/05/13 全球购物
家长会演讲稿范文
2014/01/10 职场文书
实习鉴定评语
2014/01/19 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
Python实现批量自动整理文件
2022/03/16 Python