Insert into select with a hard coded value with Ruby Sequel
up vote
0
down vote
favorite
I am using Ruby Sequel to move data into reporting tables daily. I am consolidating data from three tables into a single table. I am doing this in Redshift so I have to use disable_insert_returning
. The names of the columns in the two tables match each other but not the end table which means I am using graph
and set_graph_aliases
.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
forks_select_graph = {
user_id: :users,
purchase_date: :fork_receipts,
product_id: :fork_receipts
}
forks = db[:fork_receipts]
forks_select = forks.graph(:users, user_id: :user_id).set_graph_aliases(forks_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
reports.where(channel: nil).update(channel: 'spoons')
reports.disable_insert_returning.insert(report_columns, forks_select)
reports.where(channel: nil).update(channel: 'forks')
The updates are taking forever. What I would like to do is add the channel to the insert select
so that I don't have to go back and update.
ruby amazon-redshift sequel
add a comment |
up vote
0
down vote
favorite
I am using Ruby Sequel to move data into reporting tables daily. I am consolidating data from three tables into a single table. I am doing this in Redshift so I have to use disable_insert_returning
. The names of the columns in the two tables match each other but not the end table which means I am using graph
and set_graph_aliases
.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
forks_select_graph = {
user_id: :users,
purchase_date: :fork_receipts,
product_id: :fork_receipts
}
forks = db[:fork_receipts]
forks_select = forks.graph(:users, user_id: :user_id).set_graph_aliases(forks_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
reports.where(channel: nil).update(channel: 'spoons')
reports.disable_insert_returning.insert(report_columns, forks_select)
reports.where(channel: nil).update(channel: 'forks')
The updates are taking forever. What I would like to do is add the channel to the insert select
so that I don't have to go back and update.
ruby amazon-redshift sequel
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am using Ruby Sequel to move data into reporting tables daily. I am consolidating data from three tables into a single table. I am doing this in Redshift so I have to use disable_insert_returning
. The names of the columns in the two tables match each other but not the end table which means I am using graph
and set_graph_aliases
.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
forks_select_graph = {
user_id: :users,
purchase_date: :fork_receipts,
product_id: :fork_receipts
}
forks = db[:fork_receipts]
forks_select = forks.graph(:users, user_id: :user_id).set_graph_aliases(forks_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
reports.where(channel: nil).update(channel: 'spoons')
reports.disable_insert_returning.insert(report_columns, forks_select)
reports.where(channel: nil).update(channel: 'forks')
The updates are taking forever. What I would like to do is add the channel to the insert select
so that I don't have to go back and update.
ruby amazon-redshift sequel
I am using Ruby Sequel to move data into reporting tables daily. I am consolidating data from three tables into a single table. I am doing this in Redshift so I have to use disable_insert_returning
. The names of the columns in the two tables match each other but not the end table which means I am using graph
and set_graph_aliases
.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
forks_select_graph = {
user_id: :users,
purchase_date: :fork_receipts,
product_id: :fork_receipts
}
forks = db[:fork_receipts]
forks_select = forks.graph(:users, user_id: :user_id).set_graph_aliases(forks_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
reports.where(channel: nil).update(channel: 'spoons')
reports.disable_insert_returning.insert(report_columns, forks_select)
reports.where(channel: nil).update(channel: 'forks')
The updates are taking forever. What I would like to do is add the channel to the insert select
so that I don't have to go back and update.
ruby amazon-redshift sequel
ruby amazon-redshift sequel
edited Nov 19 at 14:48
asked Nov 19 at 14:22
Sixty4Bit
5,054103854
5,054103854
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You didn't provide an executable setup, so I haven't tested this, but I think it will work. The basic idea is to just add a constant column of results to your select.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku, :channel]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts,
channel: [:spoon_receipts, :channel, 'spoons']
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
See the documentation for set_graph_aliases
for more information.
Thank you! I missed this in the documentation!
– Sixty4Bit
Nov 25 at 15:59
@Sixty4Bit thank you for the bounty and I'm glad I could help. Please also mark the answer as accepted (click the big checkmark) so that when the question shows up in future searches, people see it has an accepted answer.
– Old Pro
Nov 26 at 0:58
you would think awarding the bounty would have accepted the answer as well. Odd. Thanks for the heads up.
– Sixty4Bit
Nov 26 at 4:06
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You didn't provide an executable setup, so I haven't tested this, but I think it will work. The basic idea is to just add a constant column of results to your select.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku, :channel]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts,
channel: [:spoon_receipts, :channel, 'spoons']
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
See the documentation for set_graph_aliases
for more information.
Thank you! I missed this in the documentation!
– Sixty4Bit
Nov 25 at 15:59
@Sixty4Bit thank you for the bounty and I'm glad I could help. Please also mark the answer as accepted (click the big checkmark) so that when the question shows up in future searches, people see it has an accepted answer.
– Old Pro
Nov 26 at 0:58
you would think awarding the bounty would have accepted the answer as well. Odd. Thanks for the heads up.
– Sixty4Bit
Nov 26 at 4:06
add a comment |
up vote
1
down vote
accepted
You didn't provide an executable setup, so I haven't tested this, but I think it will work. The basic idea is to just add a constant column of results to your select.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku, :channel]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts,
channel: [:spoon_receipts, :channel, 'spoons']
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
See the documentation for set_graph_aliases
for more information.
Thank you! I missed this in the documentation!
– Sixty4Bit
Nov 25 at 15:59
@Sixty4Bit thank you for the bounty and I'm glad I could help. Please also mark the answer as accepted (click the big checkmark) so that when the question shows up in future searches, people see it has an accepted answer.
– Old Pro
Nov 26 at 0:58
you would think awarding the bounty would have accepted the answer as well. Odd. Thanks for the heads up.
– Sixty4Bit
Nov 26 at 4:06
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You didn't provide an executable setup, so I haven't tested this, but I think it will work. The basic idea is to just add a constant column of results to your select.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku, :channel]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts,
channel: [:spoon_receipts, :channel, 'spoons']
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
See the documentation for set_graph_aliases
for more information.
You didn't provide an executable setup, so I haven't tested this, but I think it will work. The basic idea is to just add a constant column of results to your select.
reports = db[:reports]
report_columns = [:user_id, :purchase_date, :sku, :channel]
spoons_select_graph = {
user_id: :users,
purchase_date: :spoon_receipts,
product_id: :spoon_receipts,
channel: [:spoon_receipts, :channel, 'spoons']
}
spoons = db[:spoon_receipts]
spoons_select = spoons.graph(:users, user_id: :user_id).set_graph_aliases(spoons_select_graph)
reports.disable_insert_returning.insert(report_columns, spoons_select)
See the documentation for set_graph_aliases
for more information.
answered Nov 23 at 4:16
Old Pro
12.9k23663
12.9k23663
Thank you! I missed this in the documentation!
– Sixty4Bit
Nov 25 at 15:59
@Sixty4Bit thank you for the bounty and I'm glad I could help. Please also mark the answer as accepted (click the big checkmark) so that when the question shows up in future searches, people see it has an accepted answer.
– Old Pro
Nov 26 at 0:58
you would think awarding the bounty would have accepted the answer as well. Odd. Thanks for the heads up.
– Sixty4Bit
Nov 26 at 4:06
add a comment |
Thank you! I missed this in the documentation!
– Sixty4Bit
Nov 25 at 15:59
@Sixty4Bit thank you for the bounty and I'm glad I could help. Please also mark the answer as accepted (click the big checkmark) so that when the question shows up in future searches, people see it has an accepted answer.
– Old Pro
Nov 26 at 0:58
you would think awarding the bounty would have accepted the answer as well. Odd. Thanks for the heads up.
– Sixty4Bit
Nov 26 at 4:06
Thank you! I missed this in the documentation!
– Sixty4Bit
Nov 25 at 15:59
Thank you! I missed this in the documentation!
– Sixty4Bit
Nov 25 at 15:59
@Sixty4Bit thank you for the bounty and I'm glad I could help. Please also mark the answer as accepted (click the big checkmark) so that when the question shows up in future searches, people see it has an accepted answer.
– Old Pro
Nov 26 at 0:58
@Sixty4Bit thank you for the bounty and I'm glad I could help. Please also mark the answer as accepted (click the big checkmark) so that when the question shows up in future searches, people see it has an accepted answer.
– Old Pro
Nov 26 at 0:58
you would think awarding the bounty would have accepted the answer as well. Odd. Thanks for the heads up.
– Sixty4Bit
Nov 26 at 4:06
you would think awarding the bounty would have accepted the answer as well. Odd. Thanks for the heads up.
– Sixty4Bit
Nov 26 at 4:06
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53376639%2finsert-into-select-with-a-hard-coded-value-with-ruby-sequel%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown