-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature][Connector-V2] Support multi-table sink feature for HBase #7169
Conversation
Thanks @BruceWong96 for contribute this feature! Could you follow the guide to open github action on your fork repository? https://github.com/apache/seatunnel/pull/7169/checks?check_run_id=27312810188 |
OK |
@Hisoka-X |
Yes. Before we merge PR, we should make sure all test case passed. |
sink { | ||
Hbase { | ||
zookeeper_quorum = "hbase_e2e:2181" | ||
table = "seatunnel_test" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does it support writing to multiple tables?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add test cases to write to tables with different structures
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does it support writing to multiple tables?
Maybe I have a problem with my understanding. Is it many-to-many that we're going to end up with ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You decide how to design this function.
e.g. multiple tables as input upstream:
source {
FakeSource {
tables_configs = [
{
schema {
table = "table-11111"
fields {
id = string
age = int
}
}
},
{
schema {
table = "table-2222"
fields {
f1 = boolean
f2 = boolean
f3 = tinyint
}
}
}
]
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You decide how to design this function.
e.g. multiple tables as input upstream:
source { FakeSource { tables_configs = [ { schema { table = "table-11111" fields { id = string age = int } } }, { schema { table = "table-2222" fields { f1 = boolean f2 = boolean f3 = tinyint } } } ] } }
env {
parallelism = 1
job.mode = "BATCH"
}
source {
FakeSource {
tables_configs = [
{
schema {
table = "table-11111"
fields {
id = string
age = int
}
}
},
{
schema {
table = "table-2222"
fields {
f1 = boolean
f2 = boolean
f3 = tinyint
}
}
}
]
}
}
sink {
Hbase {
zookeeper_quorum = "hadoop001:2181,hadoop002:2181,hadoop003:2181"
tables_configs = [
{
source_table_name = "table-11111"
table = "hbase_table_1"
rowkey_column = ["id"]
family_name {
id = "cf1"
age = "cf1"
}
},
{
source_table_name = "table-2222"
table = "hbase_table_2"
rowkey_column = ["f1"]
family_name {
f1 = "cf2"
f2 = "cf2"
f3 = "cf2"
}
}
]
}
}
Please check whether this configuration meets the requirements. If so, I will develop according to this configuration.
Thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please update docs
sink { | ||
Hbase { | ||
zookeeper_quorum = "hbase_e2e:2181" | ||
table = "seatunnel_test" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add test cases to write to tables with different structures
@BruceWong96 I found a duplicate PR, here #6969, This is the correct way to code, you can use it as a reference for learning @TaoZex @BruceWong96 Are you willing to collaborate with each other? |
OK , I'm going to learn about it. So you can close this PR. Thanks. |
I close that pr, you can use it as a reference to try to implement it. Feel free to contact me if you have any questions. |
Thanks a lot . I will commit the code at a later time. |
hi @BruceWong96 |
Yes, I am doing some local tests, sorry for the delay, I will update the code soon. Thanks. |
1c1273f
to
945b883
Compare
8b7c393
to
75b3fc1
Compare
@hailin0 PTAL. |
@Hisoka-X PTAL. |
...-e2e/connector-hbase-e2e/src/test/java/org/apache/seatunnel/e2e/connector/hbase/HbaseIT.java
Outdated
Show resolved
Hide resolved
...-e2e/connector-hbase-e2e/src/test/java/org/apache/seatunnel/e2e/connector/hbase/HbaseIT.java
Outdated
Show resolved
Hide resolved
...ase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/sink/HbaseSinkFactory.java
Outdated
Show resolved
Hide resolved
...ase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/sink/HbaseSinkFactory.java
Outdated
Show resolved
Hide resolved
@hailin0 PTAL. |
...ase/src/main/java/org/apache/seatunnel/connectors/seatunnel/hbase/sink/HbaseSinkFactory.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM if ci passes. Thanks @BruceWong96 !
Purpose of this pull request
[Feature][HBase] Support multi-table sink feature #5652
Does this PR introduce any user-facing change?
How was this patch tested?
new e2e test
Check list
New License Guide
release-note
.