iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
AI/ ML & Data

粗暴的資料處理 DuckDB系列 第 26

Day26 -- DuckDB Style SQL (20) ?

  • 分享至 

  • xImage
  •  

今天我們繼續分析 Kafka 的 PR 情況,但是我單單跟 github 的 rate limit 就搏鬥的一個小時
並且用到了不少 DuckDB 1.1.0 後面才有的功能

CREATE SECRET github (
    TYPE HTTP,
    EXTRA_HTTP_HEADERS MAP {
        'Authorization': 'Bearer <github_pat_ 開頭的 github token>'
    }
); 

一樣的我們先得到 kafka 近期 100 隻 PR 的情況

CREATE TABLE kafka AS 
FROM read_json_auto("https://api.github.com/repos/apache/kafka/pulls?state=closed&sort=updated&direction=desc&per_page=100");

重點來了, github 的 comments 是在不同的 api
而且 comments 還分成兩種,一種是 review (有對應到 code) 一種是正常的 comments

CREATE TABLE kafka_comments AS
SELECT number, _links.comments.href as comments , _links.review_comments.href as review_comments
FROM kafka;

所以我們要先拿到 200 隻 api 的 endpoint(這邊偷懶,各拿 80 隻就好)。

SET VARIABLE normal_comments = (SELECT  List("comments")  FROM kafka_comments LIMIT 80);

SET VARIABLE review_comments = (SELECT  List("review_comments")  FROM kafka_comments LIMIT 80);

打這 160 隻 api 的 endpoint。

CREATE TABLE nc AS
SELECT * FROM read_json_auto(getvariable('normal_comments') , union_by_name = true );

CREATE TABLE rc AS
SELECT * FROM read_json_auto(getvariable('review_comments') , union_by_name = true );



不過今天搏鬥失敗,明天在繼續 🥲



上一篇
Day25-- DuckDB Style SQL (19) ?
下一篇
Day27 -- DuckDB Style SQL (21) ?
系列文
粗暴的資料處理 DuckDB30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言