比對兩個表格 (可以是不同的資料庫) 的內容,指出差異處

前幾天看到的東西,不確定是不是在 Hacker News 上,反正在 tab 上幾天了... 但還是附上 Hacker News 的連結:「Show HN: Data Diff – compare tables of any size across databases」,專案的位置在 GitHub 上的 datafold/data-diff

這是用 Python 寫的工具,安裝可以透過 pip 直接裝,所以也可以用 pipx 之類的工具獨立起來跑。

data-diff 會先拆成多個區塊,然後透過 checksum 的機制判斷兩邊的資料是否相同,不同的部份再取 bisection 分開下去找 (或是更多份,在 Technical Explanation 這個段落有寫到)。

在「Common use-cases」這段有提到幾個常見的使用情境,像是在自動化的環境下可以當作異常監控的工具:

Alerting and maintaining data integrity SLOs. You can create and monitor your SLO of e.g. 99.999% data integrity, and alert your team when data is missing.

另外在 troubleshooting 的情境下當然也很有幫助,可以先確認資料是否有問題,以及資料的哪邊出問題:

Debugging complex data pipelines. When data gets lost in pipelines that may span a half-dozen systems, without verifying each intermediate datastore it's extremely difficult to track down where a row got lost.

這個工具讓我想到 Percona Toolkit 裡面的 pt-table-checksum,不過 pt-table-checksum 只能處理 MySQL replication 的情境,data-diff 看起來通用多了:

目前完整測試過的是 MySQLPostgreSQLSnowflake,其他的有實做但還沒完整測試過。

看起來還在開發 (後面是商業公司 Datafold),但先寫下來,之後如果有用到的時候可以回頭看看進展...

五家公司提出 Form S-1:Asana、Unity、Snowflake、sumo logic、JFrog

Hacker News 上看到五家公司都準備要上市而丟出 Form S-1 的情況頗熱鬧的,申請文件可以在「ASANA, INC. (d855753ds1.htm)」、「UNITY SOFTWARE INC. (d908875ds1.htm)」、「Snowflake Inc. (snowflakes-1.htm)」、「Sumo Logic, Inc. (d821436ds1.htm)」與「JFrog Ltd. (d841831ds1.htm)」這邊翻到。

當然很多人都有類似的疑問,就是為什麼大家突然都急著要 IPO,在「Ask HN: There are 5 S-1 posts on the front page, what explains the rush?」這邊有些討論,而且也提到了一些有趣的現象,像是這五家公司到目前都是虧錢的,不過這已經是這幾年的常態了,倒是沒什麼需要大驚小怪的:

Asana lost 120m last year
Snowflake lost 350m last year
Unity lost 160m last year
Sumo Logic lost 43m last year
Jfrog lost 400k last year

Out of curiosity, is it normal for companies to IPO this far away from profitability, or is this a recent tech thing? I feel like it was a big deal when uber IPO'd so far away from profitability, now it seems standard.

有人猜測跟美國選舉有關,不過也就只有帶出來猜測...