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中from module import * 的一个坑
Jul 20 Python
Python XML RPC服务器端和客户端实例
Nov 22 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
Python3读取zip文件信息的方法
May 22 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
用python编写第一个IDA插件的实例
May 29 Python
django settings.py 配置文件及介绍
Jul 15 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
python文件操作的简单方法总结
Nov 07 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
python 基于wx实现音乐播放
Nov 24 Python
使用tensorflow 实现反向传播求导
May 26 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生成16位随机数的代码(两种方法)
2014/09/16 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
JSON 教程 json入门学习笔记
2020/09/22 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
构建Python包的五个简单准则简介
2015/06/15 Python
Python实现八大排序算法
2016/08/13 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
Python如何计算语句执行时间
2019/11/22 Python
Python @property装饰器原理解析
2020/01/22 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
艺术爱好者的自我评价分享
2013/10/08 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
上班迟到检讨书
2015/05/06 职场文书
2015暑假打工实践报告
2015/07/13 职场文书