您能否以编程方式监控 Tableau 中增量刷新的进度?
Can you monitor the progress of an incremental refresh in Tableau programmatically?
- 我查看了 TDE(Tableau 数据提取)API,它似乎仅用于创建和编辑 Tableau 数据提取,而不用于监视进度。
- 我也查看了 tabcmd,似乎除非您使用
--synchronous
命令进行完全刷新,否则除非您登录到 Tableau Server,否则无法监视刷新。
- 我什至查看了连接到 Tableau 使用的 Postgres 数据库,看看我是否可以监视来自 _background_tasks、async_jobs、background_jobs、提取物、extract_sessions 的刷新, 或 historical_events table 但我仍然找不到监视增量刷新进度的方法。
我错过了什么吗?我需要监视增量刷新的进度,以便在它完成时启动另一个进程。有办法吗?
我不知道我是怎么看这个的,但我确实看到了。 _background_tasks table 中有一个名为 job_name 的列。我以为 "Refresh Extracts" 是唯一的指标,但还有一个值叫做 "Increment Extracts"。这是一个 Python 脚本,用于查找那些增量刷新作业,包括它们是否成功、它们的进度、提取的名称以及它们完成后的完成时间。我正在使用 Python 2.7。我希望有人觉得这有用。
import psycopg2
try:
conn = psycopg2.connect("dbname='database' user='user' host='localhost' password='password' "
"port='portnumber'")
cur = conn.cursor()
cur.execute("SELECT finish_code, progress, title, completed_at FROM _background_tasks where job_name = 'Increment "
"Extracts' and POSITION('my_incremental_extract' IN title) > 0")
query_result = cur.fetchall()
for row in query_result:
if row[0] == 0:
print 'Finished succesfully'
else:
print 'Failed'
print 'Progress: ' + str(row[1])
print 'Job: ' + row[2]
print 'Time completed: ' + str(row[3])
print '*******************************************new record*****************************************'
except Exception as tb_ex:
print tb_ex
- 我查看了 TDE(Tableau 数据提取)API,它似乎仅用于创建和编辑 Tableau 数据提取,而不用于监视进度。
- 我也查看了 tabcmd,似乎除非您使用
--synchronous
命令进行完全刷新,否则除非您登录到 Tableau Server,否则无法监视刷新。 - 我什至查看了连接到 Tableau 使用的 Postgres 数据库,看看我是否可以监视来自 _background_tasks、async_jobs、background_jobs、提取物、extract_sessions 的刷新, 或 historical_events table 但我仍然找不到监视增量刷新进度的方法。
我错过了什么吗?我需要监视增量刷新的进度,以便在它完成时启动另一个进程。有办法吗?
我不知道我是怎么看这个的,但我确实看到了。 _background_tasks table 中有一个名为 job_name 的列。我以为 "Refresh Extracts" 是唯一的指标,但还有一个值叫做 "Increment Extracts"。这是一个 Python 脚本,用于查找那些增量刷新作业,包括它们是否成功、它们的进度、提取的名称以及它们完成后的完成时间。我正在使用 Python 2.7。我希望有人觉得这有用。
import psycopg2
try:
conn = psycopg2.connect("dbname='database' user='user' host='localhost' password='password' "
"port='portnumber'")
cur = conn.cursor()
cur.execute("SELECT finish_code, progress, title, completed_at FROM _background_tasks where job_name = 'Increment "
"Extracts' and POSITION('my_incremental_extract' IN title) > 0")
query_result = cur.fetchall()
for row in query_result:
if row[0] == 0:
print 'Finished succesfully'
else:
print 'Failed'
print 'Progress: ' + str(row[1])
print 'Job: ' + row[2]
print 'Time completed: ' + str(row[3])
print '*******************************************new record*****************************************'
except Exception as tb_ex:
print tb_ex