2022年8月10日,发布于 数据探索

5 分钟阅读

#职位 #职位 #职位 | 探索数据职位发布趋势

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

您可能也喜欢

所有帖子
数据堆栈的隐藏成本图片 2023年5月12日,发布于 数据探索

数据堆栈的隐藏成本

维护数据堆栈相关的、不太明显的成本的不完整列表,以及您可以采取的一些措施来控制这些成本。

The Metabase Team Portrait
Metabase 团队

9 分钟阅读

顶级 GitHub 项目的巴士系数图片 2022年11月14日,发布于 数据探索

顶级 GitHub 项目的巴士系数

星标最多的前一千个 GitHub 存储库的巴士系数是多少?

The Metabase Team Portrait
Metabase 团队

4 分钟阅读

所有帖子
Close Form Button

订阅我们的新闻资讯

随时了解 Metabase 的更新和新闻。绝无垃圾邮件。