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之复习if语句
Oct 02 Python
python使用mysql数据库示例代码
May 21 Python
使用python编写监听端
Apr 12 Python
用python爬取租房网站信息的代码
Dec 14 Python
python实现一行输入多个值和一行输出多个值的例子
Jul 16 Python
Django MEDIA的配置及用法详解
Jul 25 Python
Mac安装python3的方法步骤
Aug 09 Python
tornado+celery的简单使用详解
Dec 21 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
Python使用GitPython操作Git版本库的方法
Feb 29 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 Python
Python编写万花尺图案实例
Jan 03 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实现paypal整合方法
2010/11/28 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
javascript中的event loop事件循环详解
2018/12/14 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
Python读写配置文件的方法
2015/06/03 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
计算机本科生自荐信
2013/10/15 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python