首页 > 编程问答 >如何使用 Python API 获取每个模型的活跃用户列表、最后登录信息

如何使用 Python API 获取每个模型的活跃用户列表、最后登录信息

时间:2024-07-24 03:56:20浏览次数:11  
标签:python python-3.x python-2.7 snowflake-cloud-data-platform dbt

我想通过 Python API 获取我的 dbt 项目的所有模型中的活动或非活动用户列表。这可能吗?

我尝试列出模型,但无法获取用户信息,如用户名、项目、 以及上次活动或上次登录。


不幸的是,dbt 本身并不跟踪你所寻找的用户活动数据(最后登录、活跃用户等)。dbt 的主要功能是转换数据,而不是管理用户访问和监控活动。

要实现你的目标,你需要结合其他工具和数据源:

  1. 用户身份验证和授权平台: 你需要一个系统来管理用户访问你的数据平台。这可能是像 Okta、Auth0 这样的专用身份提供商,也可能是你的数据仓库提供的内置身份验证系统(例如 Snowflake、BigQuery)。

  2. 审计日志: 大多数数据仓库会记录用户活动,包括查询历史、登录时间等等。你可以从这些审计日志中提取相关信息。每个平台的日志结构和访问方式都不一样,你需要参考其文档。

  3. Python 脚本与 API: 你可以编写 Python 脚本来连接你的身份验证平台和数据仓库,并使用其 API 来检索必要的数据。

以下是一个可能的实现步骤:

  1. 确定用户身份验证系统: 确定你使用的是哪个身份验证系统,并找到其 API 文档。

  2. 检索用户列表: 使用身份验证系统的 API 获取所有用户的列表,包括用户名、用户 ID 等信息。

  3. 连接到数据仓库: 使用 Python 库(例如 snowflake-connector-python google-cloud-bigquery )连接到你的数据仓库。

  4. 查询审计日志: 根据你的数据仓库的日志结构,编写 SQL 查询语句来提取每个用户的最后活动时间。例如:

Snowflake: sql SELECT USER_NAME, MAX(START_TIME) AS LAST_ACTIVITY_TIME FROM SNOWFLAKE.ACCOUNT_USAGE.ACCESS_HISTORY GROUP BY USER_NAME;

BigQuery: sql SELECT protopayload_auditlog.authenticationInfo.principalEmail AS USER_NAME, MAX(timestamp) AS LAST_ACTIVITY_TIME FROM `region-us`.cloudaudit.googleapis.com/data_access WHERE protopayload_auditlog.serviceName = 'bigquery.googleapis.com' GROUP BY USER_NAME;

  1. 合并数据: 使用 Python 脚本将用户列表和最后活动时间合并在一起。

  2. 定义活动用户标准: 根据你的需求,定义一个时间阈值来判断用户是否活跃。例如,如果用户在过去 30 天内没有活动,则将其视为非活跃用户。

  3. 生成报告: 根据你的分析结果,生成包含活跃用户和非活跃用户列表的报告。

请注意,以上步骤只是一个示例框架,具体的实现方式会根据你使用的工具和具体需求而有所不同。

标签:python,python-3.x,python-2.7,snowflake-cloud-data-platform,dbt
From: 78784903

相关文章

  • Python tkinter 窗口不断关闭,我不知道为什么
    我正在尝试制作一个有趣的小程序,其中每小时左右就会有一只毛茸茸的动物走过屏幕。我有一个主窗口,它启动一个循环,每小时左右播放一次动画/声音,但是在口袋妖怪第一次完成行走后,整个程序就会结束。我认为这可能与我设置tkinter窗口的方式有关,但我无法弄清楚。我认为在这里包含......
  • 用于自动访问 MongoDB Atlas CLI 的 Python 脚本
    我想编写一个Python脚本,以便普通用户可以访问他的数据库并从他的终端执行CRUD操作。我正在查看官方文档,但我有点迷失。有人可以给我指点基本教程来开始吗?当然,以下是如何构建Python脚本来访问MongoDBAtlasCLI的基本教程:先决条件:MongoDBAtlas......
  • Python实现简单学生登陆系统
     代码:importhashlibclassStudent:def__init__(self,username,password):#初始化学生对象,存储用户名和加密后的密码self.username=usernameself.password=hashlib.sha256(password.encode()).hexdigest()defcheck_passwo......
  • python猜数字游戏
    好的,下面是一个简单的小游戏代码示例,使用Python编写。这个游戏是一个猜数字游戏,玩家需要猜一个1到100之间的随机数。importrandomdefguess_number_game():print("欢迎来到猜数字游戏!")print("我已经想好了一个1到100之间的数字,请你猜一猜。")secret_num......
  • 【Python正则表达式】:文本解析与模式匹配
    文章目录1.正则表达式2.re模块3.修饰符3.元字符3-1字符匹配元字符3-2重复次数限定元字符3-3字符集合匹配元字符3-4分组元字符3-5边界匹配元字符3-6字符类别匹配元字符4.技巧4-1贪婪与非贪婪5.案例1.正则表达式正则表达式面向什么样的问题?1、判断一个字......
  • 仅需增加2行代码,Python量化策略速度提升20+倍!
    今天分享一个Python量化策略加速的小技巧,不用修改原有代码,只需在原有代码里新增2行,策略执行速度便可能提高20+倍,正文开始~现如今,无论是入门量化投资,还是做数据分析、机器学习和深度学习,Python成为了首选编程语言,直观的原因就是容易上手和资源丰富,但Python有个根深蒂固的标签,......
  • Python基础-Anaconda,Spyder,数据类型
    1、Python与Anaconda在想使用Python之前需先安装Python,以及PythonIDE和Python的库,而用Anaconda就可以一键安装。Anaconda包含了Python,常用的python库以及IDE,还具有强大的环境和python包的管理能力。PythonIDE(IntegratedDevelopmentEnvironment,集成开发环境)是一个为开发......
  • python实现图像特征提取算法2
    python实现广义Hough变换算法、Hough变换算法1.广义Hough变换算法详解算法步骤Python实现详细解释优缺点2.Hough变换算法详解算法步骤Python实现详细解释优缺点实现广义Hough变换算法(GeneralizedHoughTransform)可以用于检测任意形状的......
  • 使用Python自动备份MC服务器存档至轻量COS
    在存档意外炸档时,备份就显得尤为重要。本文以Minecraft1.18.2为例,教你如何使用轻量搭建一个MC服务器,并定时将存档备份入轻量COS,节省本地空间。前期准备一台安装了Linux原版系统的轻量(因为目前轻量COS仅支持挂载Linux系统镜像,不支持容器或自定义镜像)一个和轻量大区相同的轻......
  • python中的数据类型-适合新手-比较完善(写了好久……)
    作者的话        首先,我先申明,以下思路仅为个人理解,如有不同,望指导,谢谢。        数据类型它是什么,有什么用,怎么用就是它的全部内容,知识框架串联起来之后就是这三部分内容,没有什么特别的东西就只是单纯的可以培养这个习惯,之后就可以很轻松的学习使用之后串联......