当前位置: 首页 > wzjs >正文

南昌市公司网站建设不知名网站开发

南昌市公司网站建设,不知名网站开发,有什么网站是做中式酒店大堂的,什么是php网站Python使用Zoominfo API检查Amazon Redshift中的公司基本信息字段的数据正确性,存储到Boolean类型的字段中,查不到的在指定字段中设置为false,否则设置为true。 技术栈 数据库连接: psycopg2:用于连接Amazon Redshif…

Python使用Zoominfo API检查Amazon Redshift中的公司基本信息字段的数据正确性,存储到Boolean类型的字段中,查不到的在指定字段中设置为false,否则设置为true。

技术栈

  1. 数据库连接
    • psycopg2:用于连接Amazon Redshift(兼容PostgreSQL协议)。
  2. API调用
    • requests:调用Zoominfo API。
  3. 数据处理
    • pandas:批量处理查询结果(可选,适用于大数据量场景)。
  4. 环境管理
    • boto3:从AWS Secrets Manager或Parameter Store获取敏感信息(如API密钥)。
  5. 部署与调度
    • AWS Lambda:无服务器执行环境。
    • Amazon EventBridge:定时触发Lambda。
  6. 日志与监控
    • AWS CloudWatch:记录运行日志和错误信息。

实现流程

  1. 环境配置
    • 将Zoominfo API密钥和Redshift连接信息存储在AWS Secrets Manager中。
  2. 数据提取
    • 从Redshift中提取待验证的公司数据(如company_nameaddress等字段)。
    • 过滤条件:仅处理未验证的记录(如is_valid IS NULL)。
  3. API调用
    • 对每条公司数据调用Zoominfo的Company Enrichment API。
    • 根据API响应判断数据是否存在,设置is_validTrueFalse
  4. 数据更新
    • 将结果批量更新回Redshift的对应表中。
  5. 错误处理
    • 记录API调用失败或数据库操作异常。
    • 支持重试机制(如指数退避)。

关键Python代码

1. 从AWS Secrets Manager获取密钥

import boto3
import jsondef get_secret(secret_name):client = boto3.client('secretsmanager')response = client.get_secret_value(SecretId=secret_name)return json.loads(response['SecretString'])

2. 连接Amazon Redshift

import psycopg2def connect_redshift():secrets = get_secret('redshift_credentials')conn = psycopg2.connect(host=secrets['host'],port=secrets['port'],dbname=secrets['dbname'],user=secrets['username'],password=secrets['password'])return conn

3. 调用Zoominfo API

import requestsdef check_company_validity(company_name, address):api_key = get_secret('zoominfo_api_key')['API_KEY']headers = {'Authorization': f'Bearer {api_key}'}params = {'companyName': company_name,'address': address,'matchCriteria': 'basic'  # 根据API文档调整参数}try:response = requests.get('https://api.zoominfo.com/company/enrich',headers=headers,params=params,timeout=10)if response.status_code == 200:return response.json().get('matchStatus') == 'Matched'  # 根据实际响应调整return Falseexcept requests.exceptions.RequestException:return False

4. 主处理逻辑

def lambda_handler(event, context):conn = connect_redshift()cursor = conn.cursor()# 查询待处理数据cursor.execute("""SELECT company_id, company_name, address FROM companies WHERE is_valid IS NULLLIMIT 1000  # 分批次处理""")rows = cursor.fetchall()# 处理每条记录updates = []for row in rows:company_id, name, address = rowis_valid = check_company_validity(name, address)updates.append((is_valid, company_id))# 批量更新cursor.executemany("""UPDATE companies SET is_valid = %s WHERE company_id = %s""", updates)conn.commit()cursor.close()conn.close()

注意事项

  1. API限流
    • 使用time.sleep()或令牌桶算法控制请求频率。
  2. 批量操作
    • 使用pandas优化大数据量场景(如分页查询)。
  3. 错误重试
    • 对失败的API调用实现重试逻辑(如tenacity库)。
  4. 安全合规
    • 通过IAM角色限制Redshift和Secrets Manager的访问权限。
  5. 日志跟踪
    • 记录关键指标(如处理时长、成功率)到CloudWatch。
# 示例:增加重试逻辑(需安装 tenacity)
from tenacity import retry, stop_after_attempt, wait_exponential@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1))
def check_company_validity_with_retry(name, address):return check_company_validity(name, address)
http://www.dtcms.com/wzjs/547725.html

相关文章:

  • 做网站的详细步骤企业关键词优化公司
  • 电子商务网站建设课外实训seo技术外包公司
  • 海报素材库网站免费为什么外包会把人干废
  • 潍坊企业建站系统蛋挞怎么做制作方法
  • 百度seo排名曝光行者seo哪些网站可以做seo
  • 婚庆公司网站建设策划书搜索关键词排名推广
  • 做个小型购物网站要多少钱昆明企业做网站
  • 建设网站主机网站转化分析
  • 搭建网站有什么用河北工商注册网入口
  • 定制开发网站织梦猫网站模板
  • 想做个网站怎么做免费1级做爰网站
  • 网站优化培训好学吗wordpress添加关键词描述
  • 杭州集团网站建设莒县网站设计
  • 国外专业做集装箱别墅网站seo网站推广优化论文
  • 手机终端网站图片在线制作水印
  • 怎么做网站里的资讯网站做淘客 还可以吗
  • 烟台专业做网站公司哪家好wordpress网站上传
  • 网站建设公司利润率延安城乡建设规划局网站
  • ftp空间网站内网门户网站
  • 农行网站不出动画怎么做c 网站开发流程图
  • 设计一个自己的电商网站推广网app下载
  • 网站开发多少钱农民佛山找人做网站
  • 响应式 官网网站微信小程序与公众号的区别
  • 企梦网站建设做设计任务的网站
  • 商城网站建设分为几块温州网站制作要多少钱
  • 电脑有了外网是不是就可以做网站wordpress 图片无法显示
  • 保定手机网站制作学生html个人网站模板
  • 网站开发多久完成多个域名多国语言网站seo优化
  • 贵阳做网站公司重庆seo推广
  • 做微网站的公司哪家好js网站文字重叠