python连接kafka-2.0
import sys
import time
import os
import json
import vertica_python
import logging
import pykafka
from pykafka import KafkaClient
#显示时间和编码方式
print('start time', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
print(sys.getdefaultencoding())
#kafka的zookepper地址和broker地址,注意要在/etc/hosts内加上解析,否则会有一大堆有规律的报错
client = KafkaClient(hosts="地址:9092",zookeeper_hosts="地址:2181")
topic = client.topics[b'订阅名']
consumer = topic.get_simple_consumer(consumer_timeout_ms=2000,consumer_group=b'自定义消费者名称')
#输出文件位置/计数初始化
file_output = open('输出文件位置', "w+", encoding='utf8')
file_output.truncate()
a_error_count = 0
a_line_count = 0
print('数据抽取准备完成')
#准备抽取
for message in consumer:
#用于停止抽取来生成文件
if message is not None and a_line_count<=20000:
try:
str_offset_join = message.value.decode()
#json头部加上offset,用于唯一标识
a = '{"offsets":"' + str(message.offset) + '",' + str_offset_join.lstrip('{')
#使用b来验证数据是json能解析的
b = json.loads(a)
file_output.write(a)
file_output.write('\n')
a_line_count += 1
except:
print('error_message')
a_error_count += 1
continue
else:
break
#本次消费完成,提交消费进度
consumer.consume()
consumer.commit_offsets()
#导入数据库
file_output.close()
vsql_copy1="copy 表名 from local 数据位置"
vsql_copy1+=" parser fjsonparser() exceptions 数据位置 direct;"
vsql_line1="/opt/vertica/bin/vsql -h 地址 -U 用户名 -w 密码 -At -c \""+vsql_copy1+"\""
print(vsql_line1)
os.popen(vsql_line1)
print('===数据抽取完成==')
print('fetch comlete')
print('a_error_count=', str(a_error_count))
print('a_line_count=', str(a_line_count))
print("load complete")
print('end_time', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
python连接kafka-2.0的更多相关文章
- python连接kafka生产者,消费者脚本
# -*- coding: utf-8 -*- ''''' 使用kafka-Python 1.3.3模块 # pip install kafka==1.3.5 # pip install kafka- ...
- Mac下Python与Kafka的配合使用
安装并配置Kafka 安装 # brew install kafka 配置 """ zookeeper配置文件/usr/local/etc/kafka/zookeeper ...
- python调用kafka服务(使用kafka-python库)
试验环境: CDH 5.15.1 CentOS 7 Python 3.7.0 kafka 1.1.1 kafka-python :https://pypi.org/project/kafka-pyth ...
- 使用python操作kafka
使用python操作kafka目前比较常用的库是kafka-python库 安装kafka-python pip3 install kafka-python 生产者 producer_test.py ...
- kafka实战教程(python操作kafka),kafka配置文件详解
kafka实战教程(python操作kafka),kafka配置文件详解 应用往Kafka写数据的原因有很多:用户行为分析.日志存储.异步通信等.多样化的使用场景带来了多样化的需求:消息是否能丢失?是 ...
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
- python连接mysql的驱动
对于py2.7的朋友,直接可以用MySQLdb去连接,但是MySQLdb不支持python3.x.这是需要注意的~ 那应该用什么python连接mysql的驱动呢,在stackoverflow上有人解 ...
- python 连接sql server
linux 下pymssql模块的安装 所需压缩包:pymssql-2.1.0.tar.bz2freetds-patched.tar.gz 安装: tar -xvf pymssql-2.1.0.tar ...
- paip.python连接mysql最佳实践o4
paip.python连接mysql最佳实践o4 python连接mysql 还使用了不少时间...,相比php困难多了..麻烦的.. 而php,就容易的多兰.. python标准库没mysql库,只 ...
- python 连接Mysql数据库
1.下载http://dev.mysql.com/downloads/connector/python/ 由于Python安装的是3.4,所以需要下载下面的mysql-connector-python ...
随机推荐
- 齐博x1标签实例:标签设置取组图不存在就取内容中的图片
对于CMS或者是其它,使用下面的代码 <div class="morepic"> {volist name=":getArray($pics=$rs.picu ...
- 齐博x1标签实例:调用多个圈子同时调用相关会员
看这一篇之前,请先看上一篇,因为他们有关联性比如要实现这样的效果 可以通过下面的代码可以实现 {qb:tag name="xxx" type="qun" row ...
- Dubbo 原理和机制详解 (非常全面)
Dubbo 是一款Java RPC框架,致力于提供高性能的 RPC 远程服务调用方案.作为主流的微服务框架之一,Dubbo 为开发人员带来了非常多的便利. 大家好,我是 mikechen,专注分享「互 ...
- golang中的锁竞争问题
索引:https://www.waterflow.link/articles/1666884810643 当我们打印错误的时候使用锁可能会带来意想不到的结果. 我们看下面的例子: package ma ...
- SQL中的Convert()函数方法(转换数据格式)
Convert函数的使用方法 格式: convert(data_type(length),data_to_be_converted,style) data_type(length)转换的目标数据类型, ...
- 驱动开发:内核LDE64引擎计算汇编长度
本章开始LyShark将介绍如何在内核中实现InlineHook挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用LDE64这个反汇编引擎,该引擎小巧简单可以直接在驱 ...
- ML-朴素贝叶斯算法
贝叶斯定理 w是由待测数据的所有属性组成的向量.p(c|x)表示,在数据为x时,属于c类的概率. \[p(c|w)=\frac{p(w|c)p(c)}{p(w)} \] 如果数据的目标变量最后有两个结 ...
- select中DISTINCT的应用-过滤表中重复数据
在表中,一个列可能会包含多个重复值,有时也许希望仅仅列出不同(distinct)的值. DISTINCT 关键词用于返回唯一不同的值. SQL SELECT DISTINCT 语法 SELECT DI ...
- PHP 正在“杀死”Python
最近,我突然发现自己好像又在逆潮流而动.可能我的想法与很多朋友不同,我认为 PHP 这个编程语言界的"混蛋"比以往任何时候都更受欢迎. 或许你会质疑--PHP 不是已经完蛋了吗?市 ...
- ArrayList中的ConcurrentModificationException,并发修改异常,fail-fast机制。
一:什么时候出现? 当我们用迭代器循环list的时候,在其中用list的方法新增/删除元素,就会出现这个错误. package com.sinitek.aml; import java.util.Ar ...