流沙河鎮

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

【Iceberg 1.5新機能】viewの紹介 - 共通メタデータ形式とバージョン管理が実現する新たな可能性

2024/3/11、Iceberg 1.5がリリースされた。Iceberg 1.5で追加された重要な機能の一つがviewのサポートだ。本記事では、Iceberg viewの仕組みと機能を紹介しつつ、実践的な活用例としてcreate_changelog_viewについて解説する。

Apache Iceberg 1.5 アップデートまとめ

本記事ではIceberg 1.5のアップデート内容を紹介する。 記事内容はリリースノートと、各アップデートのPR、コードを基に作成した。 https://iceberg.apache.org/releases/

Fundamentals of data engineering 輪読会「Chapter 11.The Future of Data Engineering」まとめ

datatech-jpで開催中のFundamentals of Data Engineering (English Edition)読書会に向けた、「Chapter 11.The Future of Data Engineering」のまとめ。 以下は基本的には本文の要約であり、★マークがついている部分は私のコメントや付加情報である。 全体の…

Fundamentals of data engineering 輪読会「Chapter 10.Security and Privacy」まとめ

datatech-jpで開催中のFundamentals of Data Engineering (English Edition)読書会に向けた、「Chapter 10. Security and Privacy」のまとめ。 以下は基本的には本文の要約であり、★マークがついている部分は私のコメントや付加情報である。 セキュリティと…

J.P.Morgan Asset Managementのデータ分析 / MLプラットフォーム「AM IQ」についてのメモ

J.P.Morgan Asset ManagementのAWS re:Invent 2023での登壇「One data platform for reporting, analytics, and ML」の視聴メモ エントリ内の情報や図版は特に断りがない限り、youtube上の当該発表を基にしている www.youtube.com 概要 J.P.Morgan Asset Man…

Open AIを敢えて使わない、セルフホストなAI Chat Bot(RAG)の意義と作り方 〜スケーラビリティ/コスト最適化のアイデアを添えて〜

セルフホストなRAGアプリケーションを構築する意義と基本的なアプローチを紹介します。また、設計面での最適化についていくつかのアイデアを示します。

2023を短く振り返る

やってよかった ブログの再開 諸般の事情で中止していたブログを再開した。自分の書いた記事を色んな人に読んでもらえて嬉しかったし、ブログきっかけの交流も広がって大変良かった。記事が重厚長大になりがちで、数を出せなかったのは反省。来年は記事のス…

MagicAnimateで人物の画像から動画を作る方法

Bytedanceが発表した、人物の画像を元に動画を生成するモデル「MagicAnimate」を試したので知見を記しておく。 showlab.github.io 基本的にはオフィシャルのGetting Startedに従っておけば動くのだが、進めていて一部詰まる箇所があったので、誰かしらの役に…

Apache Iceberg Catalogの選択肢

この記事は Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2023 の2日目の記事です。 Apache Icebergにおいて、Catalogはその根幹を担うコンポーネントだ。Icebergのreader,writerはCatalogによってテーブルを発見し、整合性を…

オープンなモデルをセルフホストする選択肢

ポエム回です Chat GPTのリリースから1年が経った。多くの人にとって縁遠い存在であったAI技術は今や世間の関心の的となり、孫正義をしてまだChatGPTを使ってない人は「人生を悔い改めた方がいい」とまで言わしめるほどだ。当初はその実務的な有用性に疑問を…

【翻訳】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~では[]=空…

EC2にPleromaの自分用インスタンス(Fediverseへのシーカーキャンプ)を建てた

Amazon EC2にPleromaの自分用インスタンスを建てたので簡単に手順をメモしておく そもそもPleromaとは? PleromaはFediverse / ActivityPubをサポートするElixir製のソフトウェアで、シンプルかつ軽量である点が特徴だ。 FAQによれば、50ユーザ未満程度の規…

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が国境を開…

なぜセキュリティを言い訳にアジリティが犠牲になるのか

ここ数年、アジリティとセキュリティ(あるいはガバナンス)の両立について考える機会が多い。伝統的で規模の大きい企業にありがちな傾向として、セキュリティやガバナンスを確保するためにはシステムの開発/運用が鈍重、高コスト、不自由になったとしても已む…

銀行が持つ「顧客ビッグデータ」はそれほどビッグではない

イギリス四大銀行の1つ、NatWestのセッションで言及されていた銀行がサービスのパーソナライズを進める上での顧客データ量の壁の話が面白かったのでメモしておく。登壇したのはNatWest のChief Data and Analytics OfficerのZacheryと、Head of Data Scienc…

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

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

q言語基礎_6_テーブル

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

q言語基礎_5_関数とApplication

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

q言語基礎_4_Dictionary(Tableの誕生)

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

q言語基礎_3_オペレータと予約語

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