Skip to content

本页尚未翻译

本页内容仍为英文原文,源自官方文档 enterprise/distributed-write。中文翻译正在分批进行中。

Distributed Write ​

How LanceDB Enterprise distributes a CTAS import's writes across plan executors.

Applies to: Embedded ❌, Enterprise ✅

Distributed write applies specifically to importing data with CREATE TABLE ... AS SELECT: the query node that planned the statement partitions the source -- Parquet files from a HuggingFace dataset, or row-group ranges of an existing Lance dataset in object storage -- across plan executors, each of which writes its own uncommitted Lance data files and reports back. The query node collects those results and commits them together as the new table's first version; no separate coordinator service is involved. See Architecture.

mermaid
%%{init: {"theme": "base", "themeVariables": {
  "background": "#ffffff", "primaryColor": "#ffffff", "primaryTextColor": "#221d19",
  "primaryBorderColor": "#ad9e95", "lineColor": "#6b625c", "textColor": "#221d19",
  "edgeLabelBackground": "#ffffff", "fontFamily": "Inter, sans-serif", "fontSize": "18px"
}}}%%
flowchart LR
    S["Source<br/>HuggingFace Parquet, or an<br/>existing Lance dataset in<br/>S3 / GCS / Azure"]
    Q["Query node<br/>plans the CTAS,<br/>commits the result"]
    PE1["Plan executor<br/>writes uncommitted files"]
    PE2["Plan executor<br/>writes uncommitted files"]
    PE3["Plan executor<br/>writes uncommitted files"]

    S --> Q
    Q --> PE1
    Q --> PE2
    Q --> PE3
    PE1 --> Q
    PE2 --> Q
    PE3 --> Q
    classDef default fill:#ffffff,stroke:#ad9e95,stroke-width:1px,color:#221d19
    classDef accent fill:#fff1ec,stroke:#e8582d,stroke-width:1.5px,color:#221d19
    class Q accent

An ordinary INSERT or merge_insert, from SQL or the SDK, does not distribute this way -- it runs as a single write, on whichever node or process executes it. Only a CTAS import fans the write itself out across machines.

Write interfaces ​