Skip to content

Commit 31a075f

Browse files
authored
feat: timestamp check for columns (#85)
Raystack rename chore: modify error message on stopped error bq sink feat: BQ streaming API fix: Remove bytefield fix: bytes to base64 in old api Bug fix fix: recreate writer if closed fix: bq timestamp filter constraints chore: getFieldByName with lowercase Camel case fix Timestamp check for columns
1 parent cbf03e4 commit 31a075f

File tree

312 files changed

+8511
-5295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

312 files changed

+8511
-5295
lines changed

README.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@ GRPC)
77

88
## Key Features
99

10-
* Instrumentation support with statsd
11-
* Log Sink
12-
* Bigquery Sink
10+
- Instrumentation support with statsd
11+
- Log Sink
12+
- Bigquery Sink
1313

1414
Depot is a sink connector, which acts as a bridge between data processing systems and real sink. The APIs in this
1515
library can be used to push data to various sinks. Common sinks implementations will be added in this repo.
1616

1717
## Requirements
1818

19-
* java8 or higher
20-
* gradle
19+
- java8 or higher
20+
- gradle
2121

2222
## How to use
2323

2424
Explore the following resources to get started
2525

26-
* [Reference](docs/reference) contains details about configurations of metrics and various sinks
27-
* [Contribute](docs/contribute/contribution.md) contains resources for anyone who wants to contribute.
26+
- [Reference](docs/reference) contains details about configurations of metrics and various sinks
27+
- [Contribute](docs/contribute/contribution.md) contains resources for anyone who wants to contribute.
2828

2929
### Build and run tests
3030

@@ -47,21 +47,21 @@ $ ./gradlew clean
4747
```xml
4848

4949
<dependency>
50-
<groupId>io.odpf</groupId>
50+
<groupId>org.raystack</groupId>
5151
<artifactId>depot</artifactId>
5252
<version>version</version>
5353
</dependency>
5454
```
5555

5656
```sh
57-
implementation group: 'io.odpf', name: 'depot', version: 'version'
57+
implementation group: 'org.raystack', name: 'depot', version: 'version'
5858
```
5959

6060
### Usage example:
6161

6262
```java
63-
public interface OdpfSink extends Closeable {
64-
OdpfSinkResponse pushToSink(List<OdpfMessage> messages) throws OdpfSinkException;
63+
public interface Sink extends Closeable {
64+
SinkResponse pushToSink(List<Message> messages) throws SinkException;
6565
}
6666
```
6767

@@ -87,17 +87,18 @@ class MyClass {
8787

8888
### Data types
8989

90-
Currently, sink connector library is supporting protobuf and Json format. We can set the datatype of `OdpfMessage` by
90+
Currently, sink connector library is supporting protobuf and Json format. We can set the datatype of `Message` by
9191
setting `SINK_CONNECTOR_SCHEMA_DATA_TYPE`. Each datatype has parsers which takes care of deserialization.
9292

9393
### Adding a new Sink
9494

95-
Each sink will have to implement `OdpfSink` interface. The pushToSink take a batch of messages and return a response
95+
Each sink will have to implement `Sink` interface. The pushToSink take a batch of messages and return a response
9696
with error list.
9797

9898
### Configurations
9999

100100
Please check the docs folder for details.
101101

102102
## License
103+
103104
Firehose is [Apache 2.0](LICENSE) licensed.

build.gradle

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ plugins {
2121
id "io.github.gradle-nexus.publish-plugin" version "1.1.0"
2222
}
2323

24-
group 'io.odpf'
25-
version '0.3.8'
24+
group 'org.raystack'
25+
version '0.4.0'
2626

2727
repositories {
2828
mavenCentral()
@@ -33,13 +33,14 @@ dependencies {
3333
implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.1.0'
3434
implementation group: 'com.datadoghq', name: 'java-dogstatsd-client', version: '2.13.0'
3535
implementation group: 'com.google.protobuf', name: 'protobuf-java-util', version: '3.1.0'
36-
implementation group: 'io.odpf', name: 'stencil', version: '0.2.1' exclude group: 'org.slf4j'
36+
implementation group: 'org.raystack', name: 'stencil', version: '0.4.0' exclude group: 'org.slf4j'
3737
implementation group: 'org.aeonbits.owner', name: 'owner', version: '1.0.9'
38-
implementation 'com.google.cloud:google-cloud-bigquery:1.115.0'
38+
implementation 'com.google.cloud:google-cloud-bigquerystorage:2.34.2'
39+
implementation 'com.google.cloud:google-cloud-bigquery:2.23.2'
3940
implementation (group: 'com.google.cloud', name:'google-cloud-bigtable', version:'2.11.2') {
4041
exclude group: "io.grpc"
4142
}
42-
implementation "io.grpc:grpc-all:1.38.0"
43+
implementation 'io.grpc:grpc-all:1.53.0'
4344
implementation group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.35'
4445
implementation group: 'redis.clients', name: 'jedis', version: '3.0.1'
4546
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.5'
@@ -93,6 +94,8 @@ idea {
9394
testSourceDirs += file("$projectDir/src/generated/test/java")
9495
}
9596
}
97+
sourceCompatibility = JavaVersion.VERSION_1_8
98+
targetCompatibility = JavaVersion.VERSION_1_8
9699

97100
protobuf {
98101
generatedFilesBaseDir = "$projectDir/src/generated"
@@ -142,10 +145,10 @@ publishing {
142145
version = project.version
143146
name = 'Depot'
144147
description = 'A sink connector library containing multiple sink implementations'
145-
url = 'https://github.com/odpf/depot'
148+
url = 'https://github.com/raystack/depot'
146149

147150
scm {
148-
url = 'https://github.com/odpf/depot.git'
151+
url = 'https://github.com/raystack/depot.git'
149152
}
150153

151154
licenses {

docs/README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,26 @@ GRPC)
77

88
## Key Features
99

10-
* Instrumentation support with statsd
11-
* Log Sink
12-
* Bigquery Sink
13-
* Redis Sink
14-
* Bigtable Sink
10+
- Instrumentation support with statsd
11+
- Log Sink
12+
- Bigquery Sink
13+
- Redis Sink
14+
- Bigtable Sink
1515

1616
Depot is a sink connector, which acts as a bridge between data processing systems and real sink. The APIs in this
1717
library can be used to push data to various sinks. Common sinks implementations will be added in this repo.
1818

1919
## Requirements
2020

21-
* java8 or higher
22-
* gradle
21+
- java8 or higher
22+
- gradle
2323

2424
## How to use
2525

2626
Explore the following resources to get started
2727

28-
* [Reference](docs/reference) contains details about configurations of metrics and various sinks
29-
* [Contribute](docs/contribute/contribution.md) contains resources for anyone who wants to contribute.
28+
- [Reference](docs/reference) contains details about configurations of metrics and various sinks
29+
- [Contribute](docs/contribute/contribution.md) contains resources for anyone who wants to contribute.
3030

3131
### Build and run tests
3232

@@ -49,21 +49,21 @@ $ ./gradlew clean
4949
```xml
5050

5151
<dependency>
52-
<groupId>io.odpf</groupId>
52+
<groupId>org.raystack</groupId>
5353
<artifactId>depot</artifactId>
5454
<version>version</version>
5555
</dependency>
5656
```
5757

5858
```sh
59-
implementation group: 'io.odpf', name: 'depot', version: 'version'
59+
implementation group: 'org.raystack', name: 'depot', version: 'version'
6060
```
6161

6262
### Usage example:
6363

6464
```java
65-
public interface OdpfSink extends Closeable {
66-
OdpfSinkResponse pushToSink(List<OdpfMessage> messages) throws OdpfSinkException;
65+
public interface Sink extends Closeable {
66+
SinkResponse pushToSink(List<Message> messages) throws SinkException;
6767
}
6868
```
6969

@@ -89,12 +89,12 @@ class MyClass {
8989

9090
### Data types
9191

92-
Currently, sink connector library is supporting protobuf and Json format. We can set the datatype of `OdpfMessage` by
92+
Currently, sink connector library is supporting protobuf and Json format. We can set the datatype of `Message` by
9393
setting `SINK_CONNECTOR_SCHEMA_DATA_TYPE`. Each datatype has parsers which takes care of deserialization.
9494

9595
### Adding a new Sink
9696

97-
Each sink will have to implement `OdpfSink` interface. The pushToSink take a batch of messages and return a response
97+
Each sink will have to implement `Sink` interface. The pushToSink take a batch of messages and return a response
9898
with error list.
9999

100100
### Configurations

docs/contribute/contribution.md

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
The following is a set of guidelines for contributing to Depot. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. Here are some important resources:
44

5-
* Github [issues](https://github.com/odpf/depot/issues) track the ongoing and reported issues.
5+
- Github [issues](https://github.com/raystack/depot/issues) track the ongoing and reported issues.
66

77
Development of Depot happens in the open on GitHub, and we are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving Depot.
88

@@ -14,44 +14,42 @@ You don’t have to be a developer to make a contribution. We also need technica
1414

1515
The following parts are open for contribution:
1616

17-
* Adding a new functionality
18-
* Improve an existing functionality
19-
* Adding a new sink
20-
* Improve an existing sink
21-
* Provide suggestions to make the user experience better
22-
* Provide suggestions to Improve the documentation
23-
17+
- Adding a new functionality
18+
- Improve an existing functionality
19+
- Adding a new sink
20+
- Improve an existing sink
21+
- Provide suggestions to make the user experience better
22+
- Provide suggestions to Improve the documentation
2423

2524
## How can I contribute?
2625

2726
We use RFCs and GitHub issues to communicate ideas.
2827

29-
* You can report a bug or suggest a feature enhancement or can just ask questions. Reach out on Github discussions for this purpose.
30-
* You are also welcome to add a new sink, improve monitoring and logging and improve code quality.
31-
* You can help with documenting new features or improve existing documentation.
32-
* You can also review and accept other contributions if you are a maintainer.
28+
- You can report a bug or suggest a feature enhancement or can just ask questions. Reach out on Github discussions for this purpose.
29+
- You are also welcome to add a new sink, improve monitoring and logging and improve code quality.
30+
- You can help with documenting new features or improve existing documentation.
31+
- You can also review and accept other contributions if you are a maintainer.
3332

34-
Please submit a PR to the main branch of the `depot` repository once you are ready to submit your contribution.
33+
Please submit a PR to the main branch of the `depot` repository once you are ready to submit your contribution.
3534
Code submission \(including a submission from project maintainers\) requires review and approval from maintainers or code owners.
36-
PRs that are submitted by the general public need to pass the build.
35+
PRs that are submitted by the general public need to pass the build.
3736
Once the build is passed community members will help to review the pull request.
3837

3938
## Becoming a maintainer
4039

4140
We are always interested in adding new maintainers. What we look for is a series of contributions, good taste, and an ongoing interest in the project.
4241

43-
* maintainers will have write-access to the `depot` repositories.
44-
* There is no strict protocol for becoming a maintainer or PMC member. Candidates for new maintainers are typically people that are active contributors and community members.
45-
* Candidates for new maintainers can also be suggested by current maintainers or PMC members.
46-
* If you would like to become a maintainer, you should start contributing in any of the ways mentioned. You might also want to talk to other maintainers and ask for their advice and guidance.
42+
- maintainers will have write-access to the `depot` repositories.
43+
- There is no strict protocol for becoming a maintainer or PMC member. Candidates for new maintainers are typically people that are active contributors and community members.
44+
- Candidates for new maintainers can also be suggested by current maintainers or PMC members.
45+
- If you would like to become a maintainer, you should start contributing in any of the ways mentioned. You might also want to talk to other maintainers and ask for their advice and guidance.
4746

4847
## Guidelines
4948

5049
Please follow these practices for your change to get merged fast and smoothly:
5150

52-
* Contributions can only be accepted if they contain appropriate testing \(Unit and Integration Tests\).
53-
* If you are introducing a completely new feature or making any major changes to an existing one, we recommend starting with an RFC and get consensus on the basic design first.
54-
* Make sure your local build is running with all the tests and checkstyle passing.
55-
* If your change is related to user-facing protocols/configurations, you need to make the corresponding change in the documentation as well.
56-
* Docs live in the code repo under [`docs`](https://github.com/odpf/depot/tree/main/docs/README.md) so that changes to that can be done in the same PR as changes to the code.
57-
51+
- Contributions can only be accepted if they contain appropriate testing \(Unit and Integration Tests\).
52+
- If you are introducing a completely new feature or making any major changes to an existing one, we recommend starting with an RFC and get consensus on the basic design first.
53+
- Make sure your local build is running with all the tests and checkstyle passing.
54+
- If your change is related to user-facing protocols/configurations, you need to make the corresponding change in the documentation as well.
55+
- Docs live in the code repo under [`docs`](https://github.com/raystack/depot/tree/main/docs/README.md) so that changes to that can be done in the same PR as changes to the code.

0 commit comments

Comments
 (0)