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

您可能也會喜歡

所有文章
The hidden costs of the data stack Image 2023 年 5 月 12 日 在 資料探索

資料堆疊的隱藏成本

維護資料堆疊相關的較不明顯成本的不完整列表,以及您可以採取的一些措施來控制這些成本。

The Metabase Team Portrait
Metabase 團隊

9 分鐘閱讀

Bus factor of top GitHub projects Image 2022 年 11 月 14 日 在 資料探索

頂級 GitHub 專案的公車指數

擁有最多星星的前一千個 GitHub 儲存庫的公車指數是多少?

The Metabase Team Portrait
Metabase 團隊

4 分鐘閱讀

所有文章
Close Form Button

訂閱我們的電子報

隨時掌握 Metabase 的更新和新聞。絕不發送垃圾郵件。