- StarRocks
- Introduction to StarRocks
- Quick Start
- Deployment
- Deployment overview
- Prepare
- Deploy
- Deploy classic StarRocks
- Deploy and use shared-data StarRocks
- Manage
- Table Design
- Data Loading
- Concepts
- Overview of data loading
- Load data from a local file system or a streaming data source using HTTP PUT
- Load data from HDFS or cloud storage
- Continuously load data from Apache Kafka®
- Bulk load using Apache Spark™
- Load data using INSERT
- Load data using Stream Load transaction interface
- Realtime synchronization from MySQL
- Continuously load data from Apache Flink®
- Change data through loading
- Transform data at loading
- Data Unloading
- Query Data Sources
- Query Acceleration
- Gather CBO statistics
- Synchronous materialized view
- Asynchronous materialized view
- Colocate Join
- Lateral Join
- Query Cache
- Index
- Computing the Number of Distinct Values
- Sorted streaming aggregate
- Administration
- Management
- Data recovery
- User Privilege and Authentication
- Performance Tuning
- Reference
- SQL Reference
- User Account Management
- Cluster Management
- ADD SQLBLACKLIST
- ADMIN CANCEL REPAIR TABLE
- ADMIN CHECK TABLET
- ADMIN REPAIR TABLE
- ADMIN SET CONFIG
- ADMIN SET REPLICA STATUS
- ADMIN SHOW CONFIG
- ADMIN SHOW REPLICA DISTRIBUTION
- ADMIN SHOW REPLICA STATUS
- ALTER RESOURCE GROUP
- ALTER SYSTEM
- CANCEL DECOMMISSION
- CREATE FILE
- CREATE RESOURCE GROUP
- DELETE SQLBLACKLIST
- DROP FILE
- DROP RESOURCE GROUP
- EXPLAIN
- INSTALL PLUGIN
- KILL
- SET
- SHOW BACKENDS
- SHOW BROKER
- SHOW COMPUTE NODES
- SHOW FILE
- SHOW FRONTENDS
- SHOW FULL COLUMNS
- SHOW INDEX
- SHOW PLUGINS
- SHOW PROC
- SHOW PROCESSLIST
- SHOW RESOURCE GROUP
- SHOW SQLBLACKLIST
- SHOW TABLE STATUS
- SHOW VARIABLES
- UNINSTALL PLUGIN
- DDL
- ALTER DATABASE
- ALTER MATERIALIZED VIEW
- ALTER TABLE
- ALTER VIEW
- ALTER RESOURCE
- ANALYZE TABLE
- BACKUP
- CANCEL ALTER TABLE
- CANCEL BACKUP
- CANCEL RESTORE
- CREATE ANALYZE
- CREATE DATABASE
- CREATE EXTERNAL CATALOG
- CREATE INDEX
- CREATE MATERIALIZED VIEW
- CREATE REPOSITORY
- CREATE RESOURCE
- CREATE TABLE AS SELECT
- CREATE TABLE LIKE
- CREATE TABLE
- CREATE VIEW
- CREATE FUNCTION
- DROP ANALYZE
- DROP STATS
- DROP CATALOG
- DROP DATABASE
- DROP INDEX
- DROP MATERIALIZED VIEW
- DROP REPOSITORY
- DROP RESOURCE
- DROP TABLE
- DROP VIEW
- DROP FUNCTION
- HLL
- KILL ANALYZE
- RECOVER
- REFRESH EXTERNAL TABLE
- RESTORE
- SET CATALOG
- SHOW ANALYZE JOB
- SHOW ANALYZE STATUS
- SHOW META
- SHOW RESOURCES
- SHOW FUNCTION
- TRUNCATE TABLE
- USE
- DML
- ALTER LOAD
- ALTER ROUTINE LOAD
- BROKER LOAD
- CANCEL LOAD
- CANCEL EXPORT
- CANCEL REFRESH MATERIALIZED VIEW
- CREATE ROUTINE LOAD
- DELETE
- EXPORT
- GROUP BY
- INSERT
- PAUSE ROUTINE LOAD
- REFRESH MATERIALIZED VIEW
- RESUME ROUTINE LOAD
- SELECT
- SHOW ALTER TABLE
- SHOW ALTER MATERIALIZED VIEW
- SHOW BACKUP
- SHOW CATALOGS
- SHOW CREATE CATALOG
- SHOW CREATE MATERIALIZED VIEW
- SHOW CREATE TABLE
- SHOW CREATE VIEW
- SHOW DATA
- SHOW DATABASES
- SHOW DELETE
- SHOW DYNAMIC PARTITION TABLES
- SHOW EXPORT
- SHOW LOAD
- SHOW MATERIALIZED VIEWS
- SHOW PARTITIONS
- SHOW PROPERTY
- SHOW REPOSITORIES
- SHOW RESTORE
- SHOW ROUTINE LOAD
- SHOW ROUTINE LOAD TASK
- SHOW SNAPSHOT
- SHOW TABLES
- SHOW TABLET
- SHOW TRANSACTION
- SPARK LOAD
- STOP ROUTINE LOAD
- STREAM LOAD
- SUBMIT TASK
- UPDATE
- Auxiliary Commands
- Data Types
- Keywords
- AUTO_INCREMENT
- Function Reference
- Java UDFs
- Window functions
- Lambda expression
- Aggregate Functions
- array_agg
- avg
- any_value
- approx_count_distinct
- bitmap
- bitmap_agg
- count
- grouping
- grouping_id
- hll_empty
- hll_hash
- hll_raw_agg
- hll_union
- hll_union_agg
- max
- max_by
- min
- multi_distinct_sum
- multi_distinct_count
- percentile_approx
- percentile_cont
- percentile_disc
- retention
- stddev
- stddev_samp
- sum
- variance, variance_pop, var_pop
- var_samp
- window_funnel
- Array Functions
- array_agg
- array_append
- array_avg
- array_concat
- array_contains
- array_contains_all
- array_cum_sum
- array_difference
- array_distinct
- array_filter
- array_intersect
- array_join
- array_length
- array_map
- array_max
- array_min
- array_position
- array_remove
- array_slice
- array_sort
- array_sortby
- array_sum
- arrays_overlap
- array_to_bitmap
- cardinality
- element_at
- reverse
- unnest
- Bit Functions
- Bitmap Functions
- base64_to_bitmap
- bitmap_agg
- bitmap_and
- bitmap_andnot
- bitmap_contains
- bitmap_count
- bitmap_from_string
- bitmap_empty
- bitmap_has_any
- bitmap_hash
- bitmap_intersect
- bitmap_max
- bitmap_min
- bitmap_or
- bitmap_remove
- bitmap_to_array
- bitmap_to_base64
- bitmap_to_string
- bitmap_union
- bitmap_union_count
- bitmap_union_int
- bitmap_xor
- intersect_count
- sub_bitmap
- to_bitmap
- JSON Functions
- Overview of JSON functions and operators
- JSON operators
- JSON constructor functions
- JSON query and processing functions
- Map Functions
- Binary Functions
- Conditional Functions
- Cryptographic Functions
- Date Functions
- add_months
- adddate
- convert_tz
- current_date
- current_time
- current_timestamp
- date
- date_add
- date_format
- date_slice
- date_sub, subdate
- date_trunc
- datediff
- day
- dayname
- dayofmonth
- dayofweek
- dayofyear
- days_add
- days_diff
- days_sub
- from_days
- from_unixtime
- hour
- hours_add
- hours_diff
- hours_sub
- microseconds_add
- microseconds_sub
- minute
- minutes_add
- minutes_diff
- minutes_sub
- month
- monthname
- months_add
- months_diff
- months_sub
- now
- quarter
- second
- seconds_add
- seconds_diff
- seconds_sub
- str_to_date
- str2date
- time_slice
- time_to_sec
- timediff
- timestamp
- timestampadd
- timestampdiff
- to_date
- to_days
- unix_timestamp
- utc_timestamp
- week
- week_iso
- weekofyear
- weeks_add
- weeks_diff
- weeks_sub
- year
- years_add
- years_diff
- years_sub
- Geographic Functions
- Math Functions
- String Functions
- append_trailing_char_if_absent
- ascii
- char
- char_length
- character_length
- concat
- concat_ws
- ends_with
- find_in_set
- group_concat
- hex
- hex_decode_binary
- hex_decode_string
- instr
- lcase
- left
- length
- locate
- lower
- lpad
- ltrim
- money_format
- null_or_empty
- parse_url
- repeat
- replace
- reverse
- right
- rpad
- rtrim
- space
- split
- split_part
- starts_with
- strleft
- strright
- substring
- trim
- ucase
- unhex
- upper
- Pattern Matching Functions
- Percentile Functions
- Scalar Functions
- Utility Functions
- cast function
- hash function
- System variables
- User-defined variables
- Error code
- System limits
- SQL Reference
- FAQ
- Benchmark
- Developers
- Contribute to StarRocks
- Code Style Guides
- Use the debuginfo file for debugging
- Development Environment
- Trace Tools
- Integration
Contribute to StarRocks
Contributing to StarRocks is cordially welcome from everyone. Contributing to StarRocks is not limited to contributing code. Below, we list different approaches to contributing to our community.
Report a bug | You can file an issue to report a bug with StarRocks. You can also click Feedback in the upper-right corner of the page you are reading in the Documentation Site to report a bug. |
---|---|
Contribute code | You can contribute your code by fixing a bug or implementing a feature. |
Contribute test case | You can contribute your test cases. |
Help review code | If you are an active contributor or committer of StarRocks, you can help us review the pull requests (PRs). |
Contribute documentation | StarRocks community maintains a tremendous amount of documentation both in Chinese and English. You can contribute documentation changes by fixing a documentation bug or proposing a new piece of content. |
Help StarRocks users | You can help newcomers who meet difficulties in our community. |
Spread the word about StarRocks | You can author an article or give a talk about us to help spread our technology to the world. |
NOTE
To contribute documentation, remember to sign off your commit using
git commit -s
. Otherwise, the Developer Certificate of Origin (DCO) check will fail and the PR may be blocked. In addition, prefix[Doc]
to your PR title and select the Doc check box.![]()
Community resources
The best place to get a wide variety of help about StarRocks is via StarRocks's Slack Channel. For contribution-related discussions, please go to the #contributing-to-starrocks channel.
You can also report issues and problems, or suggest new features, on GitHub.
Code of conduct
Our community strictly adheres to the code of conduct.
Community roles
Everyone is encouraged to participate in the StarRocks project. Anyone can make an impact by simply being involved in the discussions about new features, project roadmap, architecture, and even reporting issues you are facing.
The roles listed below are a few possible ways to get involved in the community, it also defines what is expected from each role.
User group
Participants
Participants are actively involved in the community and work to make StarRocks better for everyone.
As a participant, you can submit issue reports on GitHub, contribute test cases, translate/modify documentation, help answer user questions in forums or communities, participate in events, share your experience with StarRocks, star StarRocks on GitHub, and more.
Expectations and responsibilities:
Follow the community's code of conduct.
Be involved in discussions and community events.
Share feedback with the community so everyone else knows what is/isn’t working.
Suggest improvements.
Champions
StarRocks Community Champions are a group of passionate community evangelists and pioneers who are well-versed in StarRocks technology. They enjoy sharing the latest developments and products in the community, and their enthusiasm drives the progress and development of the community.
Benefits
Product
Early access to new products/features.
Participate in exclusive meetings with the project core team.
Community
Listed as a StarRocks champion on the website.
Exclusive prizes and badges.
Events
Free access to StarRocks' events.
Expense reimbursement for travel and accommodations for events.
VIP seats and VIP events.
Requirements
- Have published at least 3 StarRocks-related original and quality technical content (including articles, tutorials, videos, etc.).
- Participate in at least 2 online/offline technical sharing sessions as a speaker.
- Help answer user questions on Slack and other channels.
Other Requirements
- StarRocks Champions must abide by the StarRocks Community Code of Conduct.
- StarRocks Champions are eligible for one year, and must reapply each year based on their contributions in the past year.
Developer Group
Contributor
Everyone who contributes can become a StarRocks contributor. The members will provide mentorship and guidance when new contributors need assistance.
How to become a Contributor?
- 1 merged PR in any StarRocks' public repos.
As a Contributor, we expect you to
Actively participate in StarRocks' project development.
Participate in community events (meetups, hackathons, etc.).
Learn and help others learn StarRocks-related technologies.
Privileges
Be listed as a StarRocks contributor.
Be awarded a StarRocks Contributor e-certificate.
Active Contributor
Active contributors are contributors who have made outstanding contributions and sustained commitment to StarRocks. They actively participate in the community by contributing code, improving docs, and helping others.
How to become an Active Contributor?
Have 5 merged PRs or fixed major bugs.
Participate in more than 5 code reviews.
Actively participate in community events such as online/offline meetups and community discussions.
Responsibilities and privileges
Join the community meeting and discussion.
Mentor and guide new contributors.
Be listed as a StarRocks Active Contributor.
Be awarded a StarRocks Active Contributor e-certificate.
Committer
Committers are promoted from Active Contributors.
They have the authority to merge PRs into master branches and are responsible for the planning and maintenance of StarRocks. They also are active members in sharing their knowledge with the community.
How to become a Committer?
Have a deep understanding of StarRocks' principles and future plans.
Have the ability to deal with various issues that arise in the project promptly.
Lead a major development, write and revise related documents.
Receive at least two PMC nominations and pass voting.
Responsibilities and privileges
Mentor and guide other memberships in the community.
Ensure continued health of subproject.
Be granted write access to StarRocks repos (to be specified).
Be listed as a StarRocks Committer.
Be awarded a StarRocks Committer e-certificate.
PMC
PMCs are promoted from Committers. They have the authority to merge merge PRs into master branches and are responsible for the planning and maintenance of StarRocks. They also are active members in sharing their knowledge with the community.
How to become a PMC?
In-depth understanding of StarRocks principles and a clear understanding of StarRocks' future plans.
Have the ability to deal with project issues promptly.
Lead project development and iterations, and steer the overall direction of the project.
Receive at least two PMC nominations and pass voting.
Responsibilities and privileges
Mentor and guide other memberships in the community.
Ensure continued health of the project, such as code quality and test coverage.
Make and approve technical design decisions.
Define milestones and releases.
Vote and promote new committers and PMCs.
Be listed as a StarRocks PMC.
Be awarded a StarRocks PMC e-certificate.
Contribution process
If you don't know how to get started, this is the process we suggest for contributions. This process is designed to help reduce your learning curve and get your pull requests merged more efficiently!
Sign the Contributor License Agreement (CLA).
Start a discussion by creating a Github issue, or asking on Slack channel(unless the change is trivial).
Before getting your hands on codes, you should comment in the issue body, and inform the maintainer to assign you the issue that you wish to solve. It is recommended to share your plan on how to solve this problem in the issue body as well.
- This step helps you identify possible collaborators and reviewers.
- Will the change conflict with another change in progress? If so, work with others to minimize impact.
- Is this change major? If so, work with others to break the change into smaller steps.
Implement the change.
If the change is major, split it into smaller PRs.
Include tests and documentation as necessary.
Create a Github pull request:
In StarRocks community, we follow the fork-and-merge GitHub workflow when contributing code.
- Create a fork of StarRocks in your GitHub account.
- Clone this forked repository to your computer.
- Check out a new branch based on the branch you expect to contribute to.
- Commit your code changes to the new branch.
- Push the branch with code changes to GitHub.
- Create a PR to submit your code changes. It is recommended to submit ONE commit in ONE PR. You can follow the PR templated when submitting a PR.
- Make sure the pull request passes the tests in CI.
Review is required by at least 2 reviewers:
For StarRocks project, we require at least 2 lgtm from reviewers (committers) to merge the pull request.
This normally happens within a few days, but may take longer if the change is major, complex, or if a critical reviewer is unavailable. (feel free to ping the reviewer on the pull request).
Maintainers merge the pull request after the final changes are accepted.