2022年8月10日 | 数据探索

阅读时间:5 分钟

#jobs #jobs #jobs | 探索数据工作岗位的趋势

The Metabase Team Portrait
Metabase 团队
‧ 2022年8月10日 | 数据探索

‧ 5 分钟阅读

#jobs #jobs #jobs | Exploring trends in data jobs postings Image

我们对数据工作趋势如何随时间演变很感兴趣,因此我们查看了我们最喜欢的一个社区 dbt 的 Slack 上的职位发布情况。

自 2021 年以来,他们的 #jobs 频道每月都有超过 100 份职位发布,因此我们将数据导入 Metabase,看看是否能找到任何模式。

Data jobs dashboard

您可以浏览 完整的仪表板,或者继续阅读我们的观察和构建它的过程。

观察结果

职位发布的数量似乎与 dbt 的用户群和他们的 Slack 社区同步增长。

超过 40% 的职位发布提到了远程工作的可能性。

从 2021 年开始,超过一半的职位发布是远程工作的,而 2021 年之前的比例为 20%。

分析工程职位是数据领域增长最快的职位,从 2019 年的 6% 上升到 2022 年的 32%。 (图表链接

我们如何获取数据

将数据导入 Metabase

  1. 我们使用 Phantombuster 将 dbt 的 #jobs 频道中的原始消息提取到 CSV 文件中。
  2. 我们将 CSV 文件上传到 Google Sheet,并使用 fivetran 将 .csv 数据加载到 Postgres 数据库的表中。
  3. 然后我们将 Metabase 连接到 postgres 数据库。(如果您的数据库已连接,则可以跳过此步骤)。
  4. 然后我们转换了数据,并将其转换为 Metabase 中的一个 模型。如果您愿意,可以将模型数据下载为 CSV、JSON 或 XLSX 文件。

在 Metabase 中处理数据

由于文本的非结构化性质,我们选择了 SQL 查询(而不是使用图形化查询生成器)

一些职位发布在频道中,另一些则在频道的主题中。我们将它们合并,并过滤掉职位发布的回复和评论。我们使用简单的 CASELIKE 语句来提取信息,例如

  • 职位名称,
  • 职位是否为远程,
  • 提到的任何可视化工具。

这是我们用于创建模型的 SQL 代码

WITH raw_messages
     AS (SELECT CASE
                  WHEN message_url LIKE '%thread_ts=%' THEN
                  Substring(message_url, '.*thread_ts=(.*)')
                  ELSE Substring(message_url,
                       'https://getdbt.slack.com/archives/C7A7BARGT/(.*)'
                       )
                END AS thread_id,
                message_url,
                created_at,
                text,
                username
         FROM   random_datasets.dbt_jobs_scrape_20220802_messages),
     raw_messages_with_order
     AS (SELECT m.*,
                Row_number()
                  OVER(
                    partition BY thread_id
                    ORDER BY created_at ASC) AS post_order
         FROM   raw_messages m),
     combined_messages
     AS (SELECT m1.thread_id,
                m1.message_url,
                m1.created_at,
                m1.username,
                String_agg (m2.text, ' ') AS combined_text
         FROM   raw_messages_with_order m1
                LEFT JOIN raw_messages_with_order m2
                       ON m1.thread_id = m2.thread_id
                          AND m1.username = m2.username
         -- take message from original poster only
         WHERE  m1.post_order = 1
         GROUP  BY m1.thread_id,
                   m1.message_url,
                   m1.created_at,
                   m1.username)
SELECT *,
       -- location
       CASE
         WHEN Lower(Replace(combined_text, 'Is this role remote?', '')) LIKE
              '%remote%'
       THEN true
         WHEN Lower(combined_text) LIKE '%is this role remote? yes%' THEN true
         ELSE false
       END AS is_remote,
       -- BI stack
       CASE
         WHEN Lower(combined_text) LIKE '%metabase%' THEN true
         ELSE false
       END AS stack_includes_metabase,
       CASE
         WHEN Lower(combined_text) LIKE '%looker%' THEN true
         ELSE false
       END AS stack_includes_looker,
       CASE
         WHEN Lower(combined_text) LIKE '%tableau%' THEN true
         ELSE false
       END AS stack_includes_tableau,
       CASE
         WHEN Lower(combined_text) LIKE '%power bi%' THEN true
         ELSE false
       END AS stack_includes_powerbi,
       CASE
         WHEN Lower(combined_text) LIKE '%hex%' THEN true
         ELSE false
       END AS stack_includes_hex,
       CASE
         WHEN Lower(combined_text) LIKE '%qlik%' THEN true
         ELSE false
       END AS stack_includes_qlik,
       -- role
       CASE
         WHEN Lower(combined_text) LIKE '%analyst%' THEN true
         ELSE false
       END AS role_analyst,
       CASE
         WHEN Lower(combined_text) LIKE '%analytics engineer%' THEN true
         ELSE false
       END AS role_analytics_engineer,
       CASE
         WHEN Lower(combined_text) LIKE '%data scien%' THEN true
         ELSE false
       END AS role_data_scientist,
       CASE
         WHEN Lower(combined_text) LIKE '%data engineer%' THEN true
         ELSE false
       END AS role_data_engineer
FROM   combined_messages
WHERE  combined_text IS NOT NULL

您可能还喜欢

所有文章
我们 AI 数据集生成器背后的故事图片 2025 年 7 月 15 日,分类为 数据探索

我们 AI 数据集生成器背后的故事

探索我们开源 AI 数据集生成器背后的设计选择、挑战和成就。

Matthew Hefferon Portrait
Matthew Hefferon

阅读时间:3 分钟

数据栈的隐藏成本图片 2023 年 5 月 12 日,在 数据探索

数据栈的隐藏成本

一份不完整的清单,列出了与维护数据栈相关的较不明显的成本,以及一些可以用来控制这些成本的方法。

The Metabase Team Portrait
Metabase 团队

阅读时间 9 分钟

所有文章
订阅新闻通讯
Metabase 的更新和新闻
© . This site is unofficial and not affiliated with Metabase, Inc.