aiai-bot commented on issue #3955: URL: https://github.com/apache/hertzbeat/issues/3955#issuecomment-3744182512
<!-- code-pr-reviewer --> Thanks for the proposal. Apache Doris as a log storage backend is indeed not currently implemented in HertzBeat—only GreptimeDB exists for this purpose. The good news is that the warehouse module is well-architected for this extension: - **Template available**: `hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/tsdb/greptime/GreptimeDbDataStorage.java` provides a complete reference implementation with `saveLogData()`, `queryLogsByMultipleConditions()`, `batchDeleteLogs()`, etc. - **Interface contracts**: `HistoryDataReader.java` and `HistoryDataWriter.java` define the exact methods to implement - **Data model**: `LogEntry.java` (OpenTelemetry standard) defines the log structure your table schema should map to **Suggested implementation path:** 1. Create `DorisDataStorage.java` extending `AbstractHistoryDataStorage` 2. Use Doris Stream Load API for writes and MySQL JDBC for queries 3. Add `DorisProperties.java` for configuration (JDBC URL, Stream Load URL, credentials, TTL) 4. Implement TTL via Doris table properties or application-level cleanup **A few clarifying questions:** - Should TTL be enforced database-side (Doris table properties) or application-side (scheduled tasks)? - Any requirements for Doris-specific features like rollup tables for log aggregation? - Should both standalone and cluster Doris modes be supported? This would be a valuable addition given the 12 existing TSDB implementations in the codebase prove the architecture's extensibility. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
