未使用或过时的内容

593
2
06-11-2021 08:49
状态:开放
JayJohnsonWashoeCounty
定期撰稿人

如果我们可以有一个仪表板或某种类型的报告,以确定AGOL项目是“收集灰尘”,这将是有用的。比如,向我展示去年点击量少于10次的所有图层、应用程序或地图。

我关心的是如何管理不断增长的AGOL“东西”。在实验或构建应用程序时创建了许多内容,其中许多内容最终没有在生产中使用。更不用说部署ESRI解决方案所产生的大量项目,其中许多项目最终被证明是多余的。为了减少混乱和消除混乱,能够清楚地看到哪些道具获得流量,哪些没有是很有用的。

标签(4)
2的评论
jcarlson
通过 MVP荣誉贡献者

每个项目都有一个“views”属性,但项目越老,它的用处就越大。有一个“每日/每周计数”将需要评估事物是否变得陈旧,或者,例如,如果它是“安全的”关闭一个网络地图,你认为没有人使用。

试试这样做:

创建一个名为“视图计数”之类的独立托管表。

模式
title -字符串
类型-字符串
views—整数
日期-日期
id -字符串
daily_increase—整数

这可以是一个本地文件或数据库,但我喜欢将其作为托管表,以便将其带入管理仪表板,或者其他管理员可以在管理自己的内容时引用这些数字。

安排以下脚本每天运行:

从arcgis import GIS import pandas as pd from datetime import datetime GIS = GIS('portal_url', 'user', 'password') content_list = GIS .content。search('NOT owner:esri_apps', max_items=-1) out_dict = {} for content_list中的item: out_dict[content_list.index(item)] = [item. .]标题、项目。类型、项目。numViews, datetime.now(), item。老板,项目。[id] df = pd.DataFrame.from_dict(out_dict, orient='index')。rename(columns={0:'title', 1:'type', 2:'views', 3:'date', 4:'owner', 5:'id'}, inplace=True) #不是严格要求的,但可以将时间戳转换为中央标准时间df。Loc [:, 'date'] = df['date'] + pd。Timedelta('6 hours') usage_table = gis.content.get('table_id')。表[0]#字段计算每个项目ID获得最近的视图计数last_count = usage_table。query(group_by_fields_for_statistics='id', out_statistics= [{"statisticType":"max", "onStatisticField": "views", "outStatisticFieldName": "max_views"}], as_df = True) df = df.使用实例合并(last_count, on=['id'], how='left') df = df。分配(daily = df)。Views - df.max_views)添加= usage_table.edit_features(添加=df.fillna(0).astype({'daily':'int'}).spatial.to_featureset())

生成的表可用于识别高、低使用层和服务。您可以结合聚合和日期过滤器来查找内容,例如“过去一年少于10次点击”。

jcarlson_0 - 1623430024737. - png

需要注意的是:这只适用于脚本第一次运行的日期。

JayJohnsonWashoeCounty

是的,最终的结果非常像我希望ESRI通过某种管理仪表板为每个人提供的东西。

感谢张贴你的脚本@jcarlson