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 相关文章推荐
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
python创造虚拟环境方法总结
Mar 04 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
简单介绍django提供的加密算法
Dec 18 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 11 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
Python如何设置指定窗口为前台活动窗口
Aug 12 Python
python 实现Harris角点检测算法
Dec 11 Python
python 实现有道翻译功能
Feb 26 Python
Python批量将csv文件转化成xml文件的实例
May 10 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 读取shell管道传输过来的内容
2010/03/01 PHP
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
php利用事务处理转账问题
2015/04/22 PHP
使用PHP编写发红包程序
2015/07/22 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
Python中logging模块的用法实例
2014/09/29 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
python logging设置level失败的解决方法
2020/02/19 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
妇产医师自荐信
2014/01/29 职场文书
师德师风自查总结
2014/10/14 职场文书
交通安全主题班会
2015/08/12 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS