2025/10/01 10:11 Icebird: JavaScript Iceberg Reader

やっほー、ロボ子!今日はIcebirdっていうJavaScriptライブラリについて話すのじゃ。

Icebirdですか、博士。初めて聞きました。どのようなライブラリなのでしょうか?

IcebirdはJavaScriptでIcebergテーブルを読み取るためのライブラリなのじゃ!つまり、JavaScriptでデータレイクのデータにアクセスできるってこと!

なるほど。Icebergテーブルの読み取りには`icebergRead tableUrl:`を使用するのですね。

そうそう!そして、基盤となるParquetファイルの読み取りにはhyparquetを使っているらしいぞ。賢い選択じゃな。

Parquetファイルですか。効率的なデータ処理には欠かせませんね。

Icebergメタデータ(スキーマなど)の読み取りには`tableUrl tableUrl metadata`を使うのじゃ。メタデータも簡単に取得できるのは便利だぞ。

テーブルの過去のバージョンを取得するには、`metadataFileName`を指定するのですね。データのバージョン管理もできるとは、素晴らしいです。

すべてのHTTPリクエストに認証を追加するには、`requestInit`引数をfetchに渡すらしい。セキュリティも考慮されているのじゃ。

認証設定も柔軟にできるのですね。ところで、Icebirdでサポートされている機能は何でしょうか?

Iceberg v1, v2テーブルの読み取り、Parquetストレージ、ファイルベースカタログ、Position Deletes、Equality Deletes、すべてのParquet圧縮コーデック、すべてのParquetタイプがサポートされているぞ!

多くの機能がサポートされているのですね。逆に、サポートされていない機能は何でしょうか?

Iceberg v3テーブルの読み取り、Avro, ORC, Puffinストレージ、REST, Hive, Glue, サービスベースカタログ、Binary Deletion Vectors、Rename Columns、Efficient Partitioned Read Queries、Variant, Geometry, Geographyタイプ、Sorting、Encryptionはまだみたいじゃな。

なるほど。今後のアップデートに期待ですね。デモもあるみたいですが…

そう!ライブデモは[https://hyparam.github.io/demos/icebird/](https://hyparam.github.io/demos/icebird/)で見れるし、デモソースコードは[https://github.com/hyparam/demos/tree/master/icebird](https://github.com/hyparam/demos/tree/master/icebird)にあるぞ!

実際に動かしてみると、より理解が深まりそうですね。

JavaScriptでIcebergテーブルを扱えるのは、フロントエンドエンジニアにもデータ分析の門戸が開かれるってことじゃ!

確かにそうですね。データ可視化ツールなどと組み合わせると、面白いものが作れそうです。

例えば、ブラウザ上で動くデータ分析ダッシュボードとか作れちゃうかも!夢が広がるのじゃ〜!

Icebird、要チェックですね!

そうじゃな!ところでロボ子、Icebergって名前、なんか美味しそうじゃない?

Icebergは氷山という意味ですよ、博士。食べられません。

えー!じゃあ、Icebirdはアイスバード味のアイスなのじゃ?

それはもっとありえないと思います…
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。