Modell / Datensatz
lance-format/lance avatar
lance-format/lance

Lance: ein offenes Lakehouse-Format für multimodale KI

Offenes Lakehouse-Format für multimodale KI. Konvertieren Sie von Parquet in 2 Codezeilen für 100-mal schnelleren Direktzugriff, Vektorindex und Datenversionierung. Kompatibel mit Pandas, DuckDB, Polars, Pyarrow und PyTorch, weitere Integrationen folgen.

7.076 Sterne846 ForksRustApache-2.0

Auf einen Blick

Was ist das?
Eine Betrachtung dessen, was das README des Lance-Repositorys tatsächlich abdeckt: die Datei-, Tabellen- und Katalogspezifikationen, die behauptete Leistung und was unverifiziert bleibt.
Für wen ist es gedacht?
Das README stellt konkrete Behauptungen zu Leistung und Kompatibilität auf, aber die Details, die eine Überprüfung ermöglichen würden, stehen nicht im Repository. Der Speicherversionsvertrag ist der einzige Mechanismus, den das README für langfristige Kompatibilität beschreibt, und die Benchmark-Zahlen kommen ohne Methodik aus.
Darf ich es kommerziell nutzen?
Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 3 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Rust, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Woraus das Format besteht

Lance wird im README als offenes Lakehouse-Format für multimodale KI beschrieben. Das Projekt bündelt drei Spezifikationen: ein Dateiformat zum Speichern von Daten, ein Tabellenformat zum Organisieren und eine Katalogspezifikation zum Verwalten, alles entwickelt für den Betrieb auf Objektspeichern. Das README nennt drei Ziel-Workloads: den Aufbau von Suchmaschinen und Feature-Stores mit Hybridsuche, groß angelegtes ML-Training mit hoher IO-Leistung und wahlfreiem Zugriff sowie das Speichern und Abfragen multimodaler Daten wie Bilder, Videos, Audio, Text und Embeddings. Die Hauptsprache des Repositorys ist Rust; Bindungen für Python und Java werden später im README behandelt.

Lance ist als Lakehouse-Format für multimodale KI beschrieben. Die Aussage zu schnellerem Zufallszugriff und die Kompatibilität mit Pandas, DuckDB, Polars, PyArrow und PyTorch sind README-Angaben, keine Messung deiner Daten. Abschnitt 1 bindet diese Prüfung an lance: Vergleiche die beobachtete Ausgabe mit der README-Beschreibung und halte Abweichungen in der jeweiligen Konfiguration fest.

Die Funktionsliste

Die Funktionsliste im README deckt sechs Bereiche ab. Hybridsuche kombiniert Vektorähnlichkeitssuche, BM25-Volltextsuche und SQL-Analysen auf demselben Datensatz mit beschleunigten Sekundärindizes. Wahlfreier Zugriff wird als 100-mal schneller als Parquet oder Iceberg beansprucht, ohne Scan-Leistung zu opfern, aber das README nennt in diesem Abschnitt keine Testbedingungen für diesen Vergleich. Multimodale Daten werden als Blobs mit Lazy Loading gespeichert. Datenevolution erlaubt das Hinzufügen von Spalten mit Backfill-Werten ohne vollständige Tabellen-Neuschreibung. Versionierung ist automatisch, Zero-Copy und nutzt ACID-Transaktionen mit Time Travel, Tags und Branches. Das README listet auch Integrationen mit Apache Arrow, Pandas, Polars, DuckDB, Apache Spark, Ray, Trino, Apache Flink sowie offenen Katalogen wie Apache Polaris, Unity Catalog und Apache Gravitino.

Prüfe zuerst den konkreten Dateipfad und die verwendete Sprache: Das Repository enthält Rust, während die dokumentierten Integrationen aus Python- und Datenwerkzeugen kommen. Versionierung und Vektorindizes solltest du mit einem kleinen, reproduzierbaren Datensatz gegen Parquet vergleichen. Abschnitt 2 bindet diese Prüfung an lance: Vergleiche die beobachtete Ausgabe mit der README-Beschreibung und halte Abweichungen in der jeweiligen Konfiguration fest.

Speicherversions-Kompatibilität

Das README befasst sich direkt mit der Dateiformat-Stabilität. Jeder Datensatz speichert eine data_storage_version, und stabile Speicherversionen werden als langfristiger Kompatibilitätsvertrag beschrieben: Einmal mit einer stabilen Version geschrieben, werden zukünftige Lance-Versionen diesen Speicherstand weiterhin lesen können. SDK- und API-Kompatibilität wird getrennt von der Dateiformat-Kompatibilität behandelt; API-Änderungen folgen semantischer Versionierung und sind im Migrationsleitfaden dokumentiert. Das README warnt, dass ältere Lance-Versionen später eingeführte Dateiformatversionen möglicherweise nicht verstehen, und dass Mischversionen-Umgebungen die data_storage_version für deterministische Schreibvorgänge festlegen sollten. Der Dateiformat-Alias next wird als instabil bezeichnet und soll nur für Experimente verwendet werden, niemals für Produktionsdaten. Das README definiert weder die Liste der stabilen Speicherversionen noch eine Kompatibilitätsmatrix; es verweist auf einen separaten Format-Versionierungsleitfaden.

Lance ist als Lakehouse-Format für multimodale KI beschrieben. Die Aussage zu schnellerem Zufallszugriff und die Kompatibilität mit Pandas, DuckDB, Polars, PyArrow und PyTorch sind README-Angaben, keine Messung deiner Daten. Abschnitt 3 bindet diese Prüfung an lance: Vergleiche die beobachtete Ausgabe mit der README-Beschreibung und halte Abweichungen in der jeweiligen Konfiguration fest.

Der Schnellstart-Pfad

Der Schnellstart führt durch die Installation mit pip install pylance, die Konvertierung einer Parquet-Datei zu Lance mit lance.write_dataset und das Zurücklesen als PyArrow-Dataset. Pandas-Zugriff erfolgt über dataset.to_table().to_pandas(). DuckDB kann das Dataset direkt abfragen; ein Kommentar im README warnt, dass DuckDB v0.7 oder neuer nötig ist, um einen Segfault zu vermeiden. Das Vektorsuch-Beispiel lädt das SIFT-1M-Subset herunter, konvertiert die binäre .fvecs-Datei in eine Lance-Tabelle, erstellt einen IVF_PQ-Index mit 256 Partitionen und 16 Sub-Vektoren und führt dann k-Nächste-Nachbarn-Abfragen über den nearest-Parameter von dataset.to_table() aus. Das Beispiel nutzt DuckDB nur zum Sampling von 100 Abfragevektoren; das README erklärt nicht, was die IVF_PQ-Parameter bedeuten oder wie man sie abstimmt.

Prüfe zuerst den konkreten Dateipfad und die verwendete Sprache: Das Repository enthält Rust, während die dokumentierten Integrationen aus Python- und Datenwerkzeugen kommen. Versionierung und Vektorindizes solltest du mit einem kleinen, reproduzierbaren Datensatz gegen Parquet vergleichen. Abschnitt 4 bindet diese Prüfung an lance: Vergleiche die beobachtete Ausgabe mit der README-Beschreibung und halte Abweichungen in der jeweiligen Konfiguration fest.

Die Benchmarks im README

Der Benchmark-Abschnitt berichtet zwei Messreihen. Auf dem SIFT-Datensatz mit 1 Million 128-dimensionalen Vektoren meldet das README eine durchschnittliche Antwortzeit von unter 1 Millisekunde für 100 zufällig ausgewählte Abfragevektoren, gemessen auf einem 2023er M2 MacBook Air. Es enthält auch ein Diagramm zu Recall gegen Latenz, um den ANN-Kompromiss zu zeigen. Ein separater Vergleich mit dem Oxford-Pet-Datensatz behauptet, Lance sei 50 bis 100 Mal besser als das Lesen roher Metadaten für Analyseabfragen und 100 Mal besser als sowohl Parquet als auch Rohdateien für gebündelten wahlfreien Zugriff. Das README beschreibt nicht die genaue Hardware, Datengrößen oder Abfragemischung hinter diesen Zahlen; sie sind also projektberichtete Werte, keine unabhängig verifizierten Ergebnisse. Die Benchmark-Bilder werden referenziert, aber im Text nicht beschrieben.

Lance ist als Lakehouse-Format für multimodale KI beschrieben. Die Aussage zu schnellerem Zufallszugriff und die Kompatibilität mit Pandas, DuckDB, Polars, PyArrow und PyTorch sind README-Angaben, keine Messung deiner Daten. Abschnitt 5 bindet diese Prüfung an lance: Vergleiche die beobachtete Ausgabe mit der README-Beschreibung und halte Abweichungen in der jeweiligen Konfiguration fest.

Verzeichnisstruktur und Ökosystem

Die Verzeichnisstruktur teilt das Repository in vier Teile: rust enthält die Kernimplementierung, python die PyO3-Bindungen, java die JNI-Bindungen und docs die Dokumentationsquellen. Die Funktionsliste des README nennt Apache Arrow, Pandas, Polars, DuckDB, Apache Spark, Ray, Trino, Apache Flink und offene Kataloge wie Apache Polaris, Unity Catalog und Apache Gravitino als aktuelle Integrationen und sagt, weitere seien unterwegs, ohne sie zu nennen. Die Lizenz des Repositorys ist Apache-2.0, die Rechte zur Nutzung, Vervielfältigung und Verbreitung des Werks und abgeleiteter Werke gewährt. Der Lizenztext sagt nichts über Support, Garantie oder Sicherheitszusicherungen; das README behandelt diese Themen ebenfalls nicht.

Prüfe zuerst den konkreten Dateipfad und die verwendete Sprache: Das Repository enthält Rust, während die dokumentierten Integrationen aus Python- und Datenwerkzeugen kommen. Versionierung und Vektorindizes solltest du mit einem kleinen, reproduzierbaren Datensatz gegen Parquet vergleichen. Abschnitt 6 bindet diese Prüfung an lance: Vergleiche die beobachtete Ausgabe mit der README-Beschreibung und halte Abweichungen in der jeweiligen Konfiguration fest.

Redaktionelles Fazit

Das README stellt konkrete Behauptungen zu Leistung und Kompatibilität auf, aber die Details, die eine Überprüfung ermöglichen würden, stehen nicht im Repository. Der Speicherversionsvertrag ist der einzige Mechanismus, den das README für langfristige Kompatibilität beschreibt, und die Benchmark-Zahlen kommen ohne Methodik aus. Für Produktionsentscheidungen verweist das README selbst auf den Format-Versionierungsleitfaden und den Migrationsleitfaden, statt das vollständige Bild im Repository zu liefern.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen