{"id":39349143,"url":"https://github.com/pixelsdb/pixels-presto","last_synced_at":"2026-01-18T02:26:52.252Z","repository":{"id":38266535,"uuid":"470800417","full_name":"pixelsdb/pixels-presto","owner":"pixelsdb","description":"The Pixels connector for PrestoDB.","archived":false,"fork":false,"pushed_at":"2025-08-15T09:21:17.000Z","size":187,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-15T11:23:43.323Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pixelsdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-17T00:55:07.000Z","updated_at":"2025-08-15T09:21:21.000Z","dependencies_parsed_at":"2024-06-29T16:23:47.751Z","dependency_job_id":"1f835127-6af7-481b-b9a9-ce6b3bbb563b","html_url":"https://github.com/pixelsdb/pixels-presto","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pixelsdb/pixels-presto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelsdb%2Fpixels-presto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelsdb%2Fpixels-presto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelsdb%2Fpixels-presto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelsdb%2Fpixels-presto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pixelsdb","download_url":"https://codeload.github.com/pixelsdb/pixels-presto/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelsdb%2Fpixels-presto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28526569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T02:26:52.142Z","updated_at":"2026-01-18T02:26:52.231Z","avatar_url":"https://github.com/pixelsdb.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pixels-presto\nThis is the Pixels integration for PrestoDB.\n\n## Compatibility\nPixels integration (connector \u0026 event listener) is currently compatible with Presto 0.279. Other Presto versions that are compatible\nwith the Connector SPI in Presto 0.279 should also work well with Pixels.\n\n## Build\n\nThis project can be opened as a maven project in Intellij and built using maven.\n\n**Note** that Presto 0.279 requires Java 8, thus this project must be built by JDK 8.\n\nHowever, [Pixels](https://github.com/pixelsdb/pixels) is the parent of this project, \ntherefore use `mvn install` to install Pixels modules into your local maven repository before building this project.\n\nAfter building `pixels-presto`, find the following zip files in the build target directories:\n* `pixels-presto-listener-*.zip`, this is the event listener plugin for Presto.\n* `pixels-presto-connector-*.zip`, this is the connector for Presto.\n\nThey will be used in the following steps.\n\n\n## Use Pixels in Presto\n\nFollow the instructions in\n[Pixels Installation](https://github.com/pixelsdb/pixels/blob/master/docs/INSTALL.md) to install Pixels and other components except Trino.\nInstead of using Trino as the query engine, here we install Presto and use it to query Pixels.\nEnsure Java 8 is in use as it is required by Presto 0.279.\n\n\n### Install Presto\n\nDownload and install Presto-0.279 following the instructions in [Presto Docs](https://prestodb.io/docs/0.279/installation/deployment.html).\n\nHere, we install Presto to `~/opt/presto-server-0.279` and create a link for it:\n```bash\ncd ~/opt; ln -s presto-server-0.279 presto-server\n```\nThen download [presto-cli](https://prestodb.io/docs/0.279/installation/cli.html) into `~/opt/presto-server/bin/`\nand give the executable permission to it.\nSome scripts in Presto may require python:\n```bash\nsudo apt-get install python\n```\n\n\n### Install Pixels Connector\nThere are two important directories in the home of presto-server: `etc` and `plugin`.\nTo install Pixels connector, decompress `pixels-presto-connector-*.zip` into the `plugin` directory.\nThe `etc` directory contains the configuration files of Presto.\nIn addition to the configurations mentioned in the official docs, \ncreate the catalog config file named `pixels.properties` for Pixels in the `etc/catalog` directory, with the following content:\n```properties\nconnector.name=pixels\npixels.config=/home/ubuntu/opt/pixels/pixels.properties\n\n# serverless config\nlambda.enabled=false\nlocal.scan.concurrency=0\nclean.intermediate.result=true\n```\n`pixels.config` is used to specify the config file for Pixels, and has a higher priority than the config file under `PIXELS_HOME`.\n**Note** that `etc/catalog/pixels.proterties` under Presto's home is different from `PIXELS_HOME/pixels.properties`.\nThe other properties are related to serverless execution.\nIn Presto, Pixels can push down table scan (i.e., projection and selection) into serverless computing services such as AWS lambda. \nThis feature is similar to Redshift Spectrum, and it is a restricted version of \n[`Pixels Turbo`](https://github.com/pixelsdb/pixels/tree/master/pixels-turbo).\nWe call it `Pixels Turbo Lite`.\nIt can be turned on by setting `lambda.enabled` to `true`.\n\nIf `Pixels Turbo Lite` is enabled, we also need to set the following settings in `PIXELS_HOME/pixels.properties`:\n```properties\nexecutor.input.storage.scheme=s3\nexecutor.output.storage.scheme=output-storage-scheme-dummy\nexecutor.output.folder=output-folder-dummy\n```\nThose storage schemes and folders are used to access the input data\n(the data of the base tables defined by `CREATE TABLE` statements) and the output data \n(the results of the table scans executed in the serverless workers), respectively.\nEnsure they are valid so that the serverless workers can access the corresponding storage systems.\nEspecially, the `executor.input.storage.scheme` must be consistent with the storage scheme of the base\ntables. This is checked during query-planning for Pixels Turbo.\nIn addition, the `executor.output.folder` is the base path where the scan output is stored. \nIt also needs to be valid and accessible for the serverless workers.\nIf other storage scheme such as `minio` is used, ensure the related properties also configured in `PIXELS_HOME/pixels.properties`:\n```properties\nminio.region=eu-central-2\nminio.endpoint=http://minio-host-dummy:9000\nminio.access.key=minio-access-key-dummy\nminio.secret.key=minio-secret-key-dummy\n```\n\n\n### Install Pixels Event Listener*\nPixels event listener is optional. It is used to collect the query completion information for performance evaluations.\nTo install the event listener, decompress `pixels-presto-listener-*.zip` into the `plugin` directory.\n\nCreate the listener config file named `event-listener.properties` in the `etc` directory, with the following content:\n```properties\nevent-listener.name=pixels-event-listener\nenabled=true\nlistened.user.prefix=none\nlistened.schema=pixels\nlistened.query.type=SELECT\nlog.dir=/home/ubuntu/opt/pixels/listener/\n```\n`log-dir` should point to an existing directory where the listener logs will appear.\n\n\n### Run Queries\n\nStart Pixels + Presto in the same way as [Starting Pixels + Trino](https://github.com/pixelsdb/pixels/blob/master/docs/INSTALL.md).\nThe usage is also quite similar as the usage of Pixels + Trino.\nThen, you can test the query performance following [TPC-H Evaluation](https://github.com/pixelsdb/pixels/blob/master/docs/TPC-H.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixelsdb%2Fpixels-presto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpixelsdb%2Fpixels-presto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixelsdb%2Fpixels-presto/lists"}