New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SQL support #133
Comments
Interesting project. +1 for Postgres adapter for Noria. Good Luck. |
Hi! This is very much still a research prototype, so I probably wouldn't recommend trying to use it in production unless you are willing to put significant effort into maintenance and development. Since it is a research system, SQL support is also very much driven by what our benchmark applications need, rather than aiming for complete support. Of what you mention:
Note also that writes in Noria aren't generally done through SQL (though they are if you run the MySQL protocol shim). |
Thanks for the detailed answer,
That's fine, my day job is
No entirely familiar with mysql, does this include noop conflict resolution? I'm using that to dedupe and normalize tables in PG in one step with
Nice. Multiple, single-field JOINs are supported then I take it?
I understand, however the SQL adapter is essential when external systems are connecting to Noria for blending and analysis (Redash, DataGrip, Drill etc.) |
I'm not sure I follow? The feature I am thinking of is essentially this, which is "if the primary key already exists, do an update instead". Not sure what you mean by noop conflict resolution.
Noria does not currently provide any transaction support. Reads are eventually consistent with exactly-once guarantees. Writes are durable once they enter the graph, but their effects are not necessarily visible immediately. Noria does not support constraints (yet). We are looking at schemes to add support for reading your own writes, but do not have anything finalized on that yet. Not sure what you mean by computed columns?
Yes indeed! |
It's the INSERT INTO names(name)
SELECT ln.name
FROM lotta_names ln
ON CONFLICT DO NOTHING I guess since there's no constraint support, this doesn't matter, as Noria can't enforce e.g. uniqueness, right? So it would be on the "client" to enforce that prior to insertion.
Computed columns are virtual colums in a table which represent the result of an expression, here's some pseudocode:
computed columns are computed on access by default, but can also be stored (computed on row mutation). |
I think most of my questions were answered, though. So I'll close this, but discussion might continue 👍 |
Regarding the conflict resolution on insert: Noria does enforce uniqueness of primary keys, and it's default (and only) behavior is actually what you describe (ignore duplicates). See the code here. (Noria does not support insert queries that directly select from other tables, like in your example. The data would have to go through the client first.) |
Sorry if I missed an obvious doc link somewhere, but I wasn't able to find comprehensive documentation on the extend of SQL support in either noria and or noria-mysql.
I'm looking to replace some part of a 1bn+ row (postgres-based) query system with Noria, since a lot of it is written in Rust and queries are already using mat views in most cases, so here goes my feature list:
The text was updated successfully, but these errors were encountered: