流沙河鎮

情報技術系のこと書きます。

【翻訳】Bilibiliは如何にしてApache IcebergでData Lakehouseを構築したか?

この記事は著者であるRui Li氏の許可を得て翻訳したものです。 Original article: How Bilibili Builds OLAP Data Lakehouse with Apache Iceberg | by Rui Li | Medium. 文中の注釈は、訳者(@_Bassari)が読者の理解を助けるために付け加えました。 はじめに…

Apache Iceberg とは何か

はじめに 概要 Apache Iceberg(アイスバーグ)とは [重要] Icebergの本質はTable Specである Table Spec バージョン Icebergハンズオン Icebergの特徴 同時書き込み時の整合性担保 読み取り一貫性、Time Travelクエリ、Rollback Schema Evolution Hidden Part…

世界最大級のオンラインゲーム企業Riot Gamesを支える日次70TB規模のデータ基盤のユースケース

データプラットフォーム界隈の人々がコミケに技術本を出展しているのを見て、自分でも何か書きたくなってきた。そこで、世界最大級のオンラインゲーム企業であるRiot Gamesのデータ基盤がどのようにプレイヤー体験を支えているかについて、2022 AWS re:Inven…

データレイクの新しいカタチ:Open Table Formatの紹介

はじめに Open Table Formatは次世代のデータレイクの基盤となり得る技術で、徐々に導入事例(末尾に列挙)が増えてきているものの、日本での認知度は発展途上な印象がある。本記事ではOpen Table Format登場の背景を紹介する。執筆にあたって、Apache Iceberg…

Spark 3.3前後でnull値を含むDataFrameをcsvに書き込む時の挙動が異なる

Sparkのバージョン上げる時にハマりそうな考慮点のメモ null値を含むDataFrameをCSVファイルを書き込む際、~Spark 3.2とSpark 3.3~で書き込まれる値が変わる。~Spark 3.2ではnullの項目は[""]=空文字としてcsvに書かれるのに対して、Spark 3.3~では[]=空…

CDKでGlue DataCatalog TableにParameters(パラメータ)を指定する方法

結論 現状のGlue DataCatalog L2コンストラクトはParametersをサポートしていないので、escape hatchで対応する必要がある。 Abstractions and escape hatches - AWS Cloud Development Kit (AWS CDK) v2 Glue CDKコンストラクトを取り巻く状況 以下の2つを…

30歳になったのでIT業界で過ごした20代を振り返る

いくつかの大胆なフェイクが混ぜてあるので、以下はフィクションである 先日30歳の誕生日を迎えた。僕にとっての20代は文系学部を卒業して全くの未経験からIT業界に入り、亀の歩みで適応し、何とかITエンジニアの端くれを名乗れなくもない程度まで成長を遂げ…

オブザーバビリティについて理解したこと

先日、縁あってオブザーバビリティ(可観測性)勉強会の講師を務める機会があった。普通に考えれば教壇に立つからにはその分野に大変詳しいことが期待されると思うが、恐るべきことに僕は講師を引き受けるまでオブザーバビリティについて何も知らなかった。 そ…

Pandas2系でpandas.DataFrame.append()が削除された対処と背景

2023年4月、pandas 2.0がリリースされた。 What’s new in 2.0.0 (April 3, 2023) — pandas 2.1.0.dev0+766.g935244a9b9 documentation さっそく手元のツール群のバージョンを上げた所、従来append()を使っていた処理が動かなくなりハマった。 pandas.DataFra…

Selenium4系ではfindElement(s)By~関数が削除された

Selenium4系の最新では、要素の取得に用いるfindElement(s)By~関数が削除されている。元々deprecatedであったのが、完全に削除された格好。 driver.findElementById("elementId") driver.findElementByName("elementName") driver.findElementByXPath("xPat…

dockerコンテナにGPUを利用させる時は--gpusオプションを渡す

dockerコンテナにホストマシンのGPUを認識させたい時は--gpusオプションで対象のGPUを指定する。利用可能な全てのGPUを使わせたい場合はall docker run -it --rm --gpus all ubuntu nvidia-smi デバイスを指定する場合 docker run -it --rm --gpus device=GP…

IFTTTでTwitterへの投稿をmstdn.jpにも転送する時の考慮点

Fediverseデビューしたものの即座にTwitterを離脱するのは難しそう。でもFediverse側も盛り上げていきたい。なので当面はTwitterとFediverse両方に同じ内容をポストしようとなるのだが、これがめんどくさい。そこで自動化することにした。(Twitterが国境を開…

【kdb+】q言語基礎_目次ページ

# 以下は2020年頃に執筆した過去ブログのアーカイブです。現在メンテしておらず、一部の情報が古い可能性があります Kx Systemsが提供する大規模データ蓄積、分析エコシステム「kdb+」と、知る人ぞ知るその実装言語「q」。 日本語記事が全く存在しない超ニッ…

q言語基礎_6_テーブル

# 以下は2020年頃に執筆した過去ブログのアーカイブです。現在メンテしておらず、一部の情報が古い可能性があります へんてこデータベースもどき「kdb」と、知る人ぞ知るその実装言語「q」の基本を解説する本シリーズ。 本連載の目的はq言語の基本的な情報、…

q言語基礎_5_関数とApplication

# 以下は2020年頃に執筆した過去ブログのアーカイブです。現在メンテしておらず、一部の情報が古い可能性があります へんてこデータベースもどき「kdb」と、知る人ぞ知るその実装言語「q」の基本を解説する本シリーズ。 本連載の目的はq言語の基本的な情報、…