Skip to main content

No project description provided

Project description

[toc]

项目背景

目前每次我们存数据库的时候都会有这样的问题,所有的数据在同步。或者说在入库时我们需要写入库的相关代码【day by day】,本着:DRY - Don't Repeat Yourself(不要重复你自己)原则于是我想到了我们可以异步及批量数据操作器。

项目构想

  • 我们只需要关注数据的问题,不用再太多费心操作相关的创建表,修改表相关字段问题

项目支持的数据库类型

  • Mysql
  • SqlServer
  • KafKa
  • ElasticSearch
  • Mongo

文件说明

DBOP(Database Operation)数据库操作相关代码

  • x_sqlserver.py文件用来存储处理x_sqlserver数据的管道
  • x_mysql.py文件用来存储处理x_mysql数据的管道
  • x_kafka.py文件用来存储处理kafka数据的管道
  • x_mongo.py文件用来存储处理Mongo数据的管道

SqlServer

将SqlServer进行了封装,会自动智能的去创建一些表和字段相关的东西,会省爬虫开发者一些时间

MySQL

将MySQL进行了封装,会自动智能的去创建一些表和字段相关的东西,会省爬虫开发者一些时间。因为mysql<=5.5版本可能有些创建更新时间不稳定的问题,我已经把相关的代码先暂时不开放,如果有更好的方案我们再优化一下。

Kafka

将Kafka进行了封装,对平时我们爬虫的一些常规数据存储做操作,利用单例模式开发支持多线程操作【加锁】

基本实例

# 导入mysql
from xdbx import x_mysql

# 导入sqlserver
# from xdbx import x_mssql

# 数据库ip
x_mysql.host = '127.0.0.1'
# 数据库端口 【mysql默认为3306】
x_mysql.port = 3306
# 数据库用户名
x_mysql.username = 'root'
# 数据库密码
x_mysql.password = '123456'
# 数据库名【需要先创建好的数据库】
x_mysql.db = 'test'
# 插入一条

x_mysql.insert_one(item={'a': 1, 'b': 2}, table='ceshi_20211229')
# 插入多条
x_mysql.insert_many(items=[{'a': 1, 'b': 2}, {'a': 1, 'b': 2}, {'a': 1, 'b': 2}, {'a': 1, 'b': 2}],
                    table='ceshi_20211229')

TODO-LIST

  • 支持数据库的连接参数重写操作
  • 智能创建表和字段
  • 操作数据同一个表字段不同时,会到表中智能增加字段
  • 批量数据插入操作
  • 支持单例多线程加锁操作
  • 创建表时会自动报警钉钉通知消息
  • 添加查询功能
  • 添加更新功能
  • 添加主键功能支持字符串,字典和列表类型

Q&A

Q0:解决触发器的问题

注:相同数据库中不能有相同的触发器,虽然作用于这个表,但是他的范围是相对于数据库,相当于函数名

DBEDF650-1E0D-42ff-A3FC-D32E8FF93CD6.png

Q1:解决字段名大小写不同判断有误的问题

使用字段做对比时全进行转换成小写后再对比

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xdbx-1.0.8.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xdbx-1.0.8-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file xdbx-1.0.8.tar.gz.

File metadata

  • Download URL: xdbx-1.0.8.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.6

File hashes

Hashes for xdbx-1.0.8.tar.gz
Algorithm Hash digest
SHA256 e5a546534ac19c3c3c7671cbbf8b10a1a551a834ef143c7d7f0317a77a8a9b6c
MD5 d99ba28c9fc2a71bd9dda175b437fae5
BLAKE2b-256 e516e4ef5613a47e39df6ffc18377312f08112ba8cd642a4373b89f1fdd39cdb

See more details on using hashes here.

File details

Details for the file xdbx-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: xdbx-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.6

File hashes

Hashes for xdbx-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 399bfb2822619fb1c6e3f578588465a0896673b9a4c4761d35d08ab8bd503aba
MD5 b6aea709a36a6ddbe4f831fcb7530cf1
BLAKE2b-256 351341bee56ccc12a425aaf5993bfed2599751f6f9dc2a5fe00d1cc21c00f8c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page