Aashish-Jha-11 opened a new pull request, #35876:
URL: https://github.com/apache/beam/pull/35876
Fixes #35873
## Summary
This PR implements a `Write` transform for the Go SDK's cross-language
Bigtable package (`xlang/bigtableio`), bringing it to feature parity with the
Bigtable I/O connectors in other Beam SDKs and providing a fully supported
mechanism for writing data to Google Cloud Bigtable from Go pipelines.
## Changes Made
- Implement `Write` function with cross-language support using Java
`BigtableIO.Write`
- Add `WriteOption` and `WriteExpansionAddr` for configuration
- Use `beam:schematransform:org.apache.beam:bigtable_write:v1` URN
- Follow same patterns as BigQuery xlang implementation
- Reuse existing expansion service infrastructure
- Update package documentation to include Write transform
- Brings Go SDK to feature parity with other Beam SDKs for Bigtable writes
## Problem Solved
Currently, Go developers who need to write to Bigtable are directed to use
the community-supported `go/pkg/beam/io/bigtableio` package, which has
limitations such as its internal use of `GroupByKey` on a global window that
can cause streaming pipelines to stall indefinitely.
This implementation provides a fully supported cross-language alternative
that leverages the robust Java `BigtableIO.Write` transform, offering the same
reliability and features available to Java developers.
## Testing
- Package builds successfully
- All imports resolve correctly
- Implementation follows established xlang patterns
- Consistent with existing BigQuery xlang implementation
## Usage Example
```go
import "github.com/apache/beam/sdks/v2/go/pkg/beam/io/xlang/bigtableio"
// Write rows to Bigtable
rows := beam.CreateList(s, []bigtableio.Row{sampleRow})
bigtableio.Write(s, "project-id", "instance-id", "table-id", rows)
// With custom expansion service
bigtableio.Write(s, "project-id", "instance-id", "table-id", rows,
bigtableio.WriteExpansionAddr("localhost:8080"))
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]