Hub documentation

DuckDB

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

DuckDB

DuckDB, süreç içi bir SQL OLAP veritabanı yönetim sistemidir. Hub'daki verilere erişmek için Hugging Face yollarını (hf://) kullanabilirsiniz:

DuckDB CLI (Komut Satırı Arayüzü) tek bir, bağımlılıksız çalıştırılabilir dosyadır. DuckDB'yi çalıştırmak için Python, C++, Go, Java, Rust ve daha fazlası dahil olmak üzere diğer API'ler de mevcuttur. Ek ayrıntılar için istemciler sayfasını ziyaret edin.

Kurulum ayrıntıları için kurulum sayfasını ziyaret edin.

hf CLI'yi kullanıyorsanız, hf datasets sql ile DuckDB sorgularını doğrudan çalıştırabilirsiniz, örneğin hf datasets sql "FROM 'hf://datasets/ibm/duorc/ParaphraseRC/*.parquet' LIMIT 3". Kapılı ve özel veri setleri için kimlik doğrulama, oturum açmış token'ınızdan otomatik olarak yapılandırılır ve --format json makine tarafından okunabilir çıktı döndürür.

v0.10.3 sürümünden itibaren DuckDB CLI, hf:// şemasına sahip URL'ler aracılığıyla Hugging Face Hub'daki veri setlerine erişim için yerel destek içerir. Bu güçlü araçla kullanabileceğiniz bazı özellikler şunlardır:

  • Herkese açık veri setlerini ve kendi kapılı ve özel veri setlerinizi sorgulayın
  • Veri kümelerini analiz edin ve SQL işlemleri gerçekleştirin
  • Veri kümelerini birleştirin ve farklı formatlara dışa aktarın
  • Gömme veri setlerinde vektör benzerlik araması yapın
  • Veri kümelerinde tam metin arama uygulayın

DuckDB özelliklerinin tam listesi için DuckDB belgelerini ziyaret edin.

CLI'yi başlatmak için, kurulum klasöründe aşağıdaki komutu çalıştırın:

./duckdb

Hugging Face URL'sini Oluşturma

Hugging Face veri setlerine erişmek için aşağıdaki URL biçimini kullanın:

hf://datasets/{my-username}/{my-dataset}/{path_to_file} 
  • my-username, veri setinin kullanıcı veya kuruluşu, örn. ibm
  • my-dataset, veri seti adı, örn: duorc
  • path_to_parquet_file, glob desenlerini destekleyen parquet dosya yolu, örneğin tüm parquet dosyalarını sorgulamak için **/*.parquet

@~parquet dalını kullanarak otomatik dönüştürülmüş Parquet dosyalarını sorgulayabilirsiniz; bu dal, refs/convert/parquet revizyonuna karşılık gelir. Daha fazla ayrıntı için https://huggingface.co/docs/datasets-server/en/parquet#conversion-to-parquet adresindeki belgelere başvurun.

Bir veri setinin refs/convert/parquet revizyonuna atıfta bulunmak için aşağıdaki sözdizimini kullanın:

hf://datasets/{my-username}/{my-dataset}@~parquet/{path_to_file} 

Yukarıdaki sözdizimini takip eden örnek bir URL aşağıdadır:

hf://datasets/ibm/duorc@~parquet/ParaphraseRC/test/0000.parquet

Bir veri setini sorgula

Bir veri setindeki tüm satırları sorgulamak için hızlı bir demo ile başlayalım:

FROM 'hf://datasets/ibm/duorc/ParaphraseRC/*.parquet' LIMIT 3;

Veya geleneksel SQL sözdizimini kullanarak:

SELECT * FROM 'hf://datasets/ibm/duorc/ParaphraseRC/*.parquet' LIMIT 3;

Aşağıdaki bölümlerde, Hugging Face veri kümeleri üzerinde DuckDB ile gerçekleştirebileceğiniz daha karmaşık işlemleri ele alacağız.

Depolama Kovalarını Sorgulama: DuckDB 2.0 ve sonraki sürümler, Depolama Kovalarını CLI ve her istemciden yerel olarak okur:

SELECT * FROM 'hf://buckets/username/my-bucket/data.parquet' LIMIT 10;

Buckets sürüm yönetimi yapılmadığı için @revision sözdizimi bucket yollarına uygulanmaz. DuckDB 1.x'te Hugging Face dosya sistemini Python üzerinden kaydedin: duckdb.register_filesystem(HfFileSystem()). Ayrıntılar için DuckDB ile Sorgu bölümüne bakın.

Bir veri setini kaydet

Bir veri setini Hugging Face'e kaydetmek için COPY ... TO sözdizimini kullanın.

  1. DuckDB >=2.0 için eklentiyi yükleyin:
SET allow_extension_repositories = 'allowed';
CREATE OR REPLACE EXTENSION REPOSITORY hf_repo
  WITH PREFIX 'https://hf.co/buckets/duckdb-extensions/builds/resolve';
INSTALL hf FROM hf_repo;
LOAD hf FROM hf_repo;
  1. hf CLI veya doğrudan DuckDB içinde kimlik doğrulaması yapın:
  • CLI'de:

    hf auth login
  • DuckDB'de:

    CREATE SECRET (TYPE HUGGINGFACE, TOKEN 'hf_...');
  1. Henüz yoksa veri seti depolamanızı oluşturun:
  • CLI'de:

    hf repos create username/my-dataset --repo-type dataset --private
  • DuckDB'de:

    FROM hf_create_repo('hf://datasets/username/my-dataset', private := true);
  1. Tablonuzu Hugging Face'e örneğin Parquet biçiminde dışa aktarın:
COPY tbl TO 'hf://datasets/username/my-dataset/out.parquet';

Tabloyu bir bölüntü anahtarına göre birden çok dosyaya bölmek için PARTITION_BY kullanın: COPY tbl TO 'hf://datasets/username/my-dataset/out-directory' (FORMAT parquet, PARTITION_BY (year, month));. Dosyalar, bölüntü anahtarı değerlerine göre doğru alt dizine yerleştirilir, örneğin 'hf://datasets/username/my-dataset/out-directory/year=2026/month=1/data_1.parquet'.

Veri kümeleri git depoları olduğu için her yeni dosya, veri kümesi geçmişinde bir commit'tir.

Update on GitHub