This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git
The following commit(s) were added to refs/heads/master by this push:
new a2692873c [hotfix][doc]improve readability and fix typos (#1066)
a2692873c is described below
commit a2692873ceb248758d4375ccc49443794fa6fe2a
Author: Jing Ge <[email protected]>
AuthorDate: Fri May 5 09:36:36 2023 +0800
[hotfix][doc]improve readability and fix typos (#1066)
---
docs/content/concepts/basic-concepts.md | 2 +-
docs/content/concepts/primary-key-table.md | 13 +++++++------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/docs/content/concepts/basic-concepts.md
b/docs/content/concepts/basic-concepts.md
index b54db0e5f..84e791802 100644
--- a/docs/content/concepts/basic-concepts.md
+++ b/docs/content/concepts/basic-concepts.md
@@ -56,6 +56,6 @@ See [file layouts]({{< ref "concepts/file-layouts" >}}) for
how files are divide
## Consistency Guarantees
-Paimon writers uses two-phase commit protocol to atomically commit a batch of
records to the table. Each commit produces at most two [snapshots]({{< ref
"concepts/basic-concepts#snapshot" >}}) at commit time.
+Paimon writers use two-phase commit protocol to atomically commit a batch of
records to the table. Each commit produces at most two [snapshots]({{< ref
"concepts/basic-concepts#snapshot" >}}) at commit time.
For any two writers modifying a table at the same time, as long as they do not
modify the same bucket, their commits are serializable. If they modify the same
bucket, only snapshot isolation is guaranteed. That is, the final table state
may be a mix of the two commits, but no changes are lost.
diff --git a/docs/content/concepts/primary-key-table.md
b/docs/content/concepts/primary-key-table.md
index 09cf26dc0..4f574a107 100644
--- a/docs/content/concepts/primary-key-table.md
+++ b/docs/content/concepts/primary-key-table.md
@@ -28,7 +28,7 @@ under the License.
Changelog table is the default table type when creating a table. Users can
insert, update or delete records in the table.
-Primary keys are a set of columns that are unique for each record. Paimon
imposes an ordering of data, which means the system will sort the primary key
within each bucket. Using this feature, users can achieve high performance by
adding filter conditions on the primary key.
+Primary keys consist of a set of columns that contain unique values for each
record. Paimon enforces data ordering by sorting the primary key within each
bucket, allowing users to achieve high performance by applying filtering
conditions on the primary key.
By [defining primary keys]({{< ref
"how-to/creating-tables#tables-with-primary-keys" >}}) on a changelog table,
users can access the following features.
@@ -37,7 +37,7 @@ By [defining primary keys]({{< ref
"how-to/creating-tables#tables-with-primary-k
When Paimon sink receives two or more records with the same primary keys, it
will merge them into one record to keep primary keys unique. By specifying the
`merge-engine` table property, users can choose how records are merged together.
{{< hint info >}}
-Set `table.exec.sink.upsert-materialize` to `NONE` always in Flink SQL
TableConfig, sink upsert-materialize may
+Always set `table.exec.sink.upsert-materialize` to `NONE` in Flink SQL
TableConfig, sink upsert-materialize may
result in strange behavior. When the input is out of order, we recommend that
you use
[Sequence Field]({{< ref "concepts/primary-key-table#sequence-field" >}}) to
correct disorder.
{{< /hint >}}
@@ -50,14 +50,15 @@ Specifically, if the latest record is a `DELETE` record,
all records with the sa
### Partial Update
-By specifying `'merge-engine' = 'partial-update'`, users can set columns of a
record across multiple updates and finally get a complete record. Specifically,
value fields are updated to the latest data one by one under the same primary
key, but null values are not overwritten.
+By specifying `'merge-engine' = 'partial-update'`,
+Users have the ability to update columns of a record through multiple updates
until the record is complete. This is achieved by updating the value fields one
by one, using the latest data under the same primary key. However, null values
are not overwritten in the process.
-For example, let's say Paimon receives three records:
+For example, suppose Paimon receives three records:
- `<1, 23.0, 10, NULL>`-
- `<1, NULL, NULL, 'This is a book'>`
- `<1, 25.2, NULL, NULL>`
-If the first column is the primary key. The final result will be `<1, 25.2,
10, 'This is a book'>`.
+Assuming that the first column is the primary key, the final result would be
`<1, 25.2, 10, 'This is a book'>`.
{{< hint info >}}
For streaming queries, `partial-update` merge engine must be used together
with `lookup` or `full-compaction` [changelog producer]({{< ref
"concepts/primary-key-table#changelog-producers" >}}).
@@ -70,7 +71,7 @@ Partial cannot receive `DELETE` messages because the behavior
cannot be defined.
### Aggregation
{{< hint info >}}
-NOTE: Set `table.exec.sink.upsert-materialize` to `NONE` always in Flink SQL
TableConfig.
+NOTE: Always set `table.exec.sink.upsert-materialize` to `NONE` in Flink SQL
TableConfig.
{{< /hint >}}
Sometimes users only care about aggregated results. The `aggregation` merge
engine aggregates each value field with the latest data one by one under the
same primary key according to the aggregate function.