AMcoder - javascript, python, java, html, php, sql

Redshift-ը միացեք մետատվյալների աղյուսակին և ընտրեք սյունակներ

Ես ստեղծել եմ pg_table_def աղյուսակի ենթաբազմություն՝ table_name, col_name և data_type: Ես նաև ավելացրել եմ «Y» ակտիվ սյունակ՝ որպես արժեք որոշ տողերի համար: Եկեք այս աղյուսակը անվանենք որպես config: Աղյուսակի կազմաձևումը հետևյալն է.

table_name             column_name
interaction_summary    name_id
tag_transaction        name_id
interaction_summary    direct_preference
bulk_sent              email_image_click
crm_dm                 web_le_click

Այժմ ես ուզում եմ, որպեսզի կարողանամ աղյուսակի անունները քարտեզագրել այս աղյուսակից իրական աղյուսակում և համապատասխան սյունակի արժեքները վերցնել: name_id-ը կլինի այստեղ բանալին, որը հասանելի կլինի բոլոր աղյուսակներում: Իմ արդյունքը պետք է նման լինի ստորև.

name_id     direct_preference  email_image_click        web_le_click
1            Y                 1                         2
2            N                 1                         2

Լուծումը պետք է դինամիկ լինի, որպեսզի նույնիսկ եթե վաղը աղյուսակների ցանկը երկարաձգվի, նոր աղյուսակը կարողանա տեղավորել: Քանի որ ես նոր եմ Redshift-ում, ցանկացած օգնություն գնահատելի է: Ես նույնպես մտածում եմ նույնն անել R-ի միջոցով՝ օգտագործելով dplyr փաթեթը:


  • Redshift SQL-ը չի աջակցում փոփոխականներին կամ դինամիկ SQL-ին, այնպես որ դա հնարավոր չէ ձեռք բերել բացառապես Redshift-ում, ձեզ անհրաժեշտ կլինի որոշակի արտաքին գործընթաց՝ մետատվյալները հարցում կատարելու և համապատասխան ընտրված հայտարարություններ ստեղծելու համար: Օգտակար կլինի նաև, եթե կարողանաք մանրամասնել ձեր դիտարկած և մերժված տարբերակները, կամ ձեր միջավայրի սահմանափակումները, օրինակ. հասանելի գործիքներ. Ինչպես կա, այս հարցը չափազանց բաց է ցանկացած մանրամասն պատասխանելու համար: stackoverflow.com/help/how-to-ask 13.05.2018
  • Շնորհակալություն Նաթան։ Ես ավելի զգույշ կլինեի հետագա հարցերը տեղադրելիս: Իմ պլանն էր իրականացնել ռեգրեսիոն վերլուծություն տվյալների բազայի աղյուսակի մի քանի սյունակների վրա՝ օգտագործելով դինամիկ հարցում: Ես կարողացա գրեթե կոտրել այն R-ի միջոցով: Ստորև պատասխանել եմ իմ հարցին: 14.05.2018

Պատասխանները:


1

Ես հասկացա, որ դինամիկ հարցումները չեն աշխատում Redshift-ի հետ: Իմ նպատակն էր քաշել ցանկացած նոր աղյուսակ, որը գալիս է և օգտագործել դրանց սյունակները ռեգրեսիայի վերլուծության համար R-ում: Եվ հետո ելքը գրեց տվյալների շրջանակում R-ում: Այս տվյալների շրջանակը կունենա «n» ընտրված հարցումների թիվը՝ որպես տարբեր տողեր: Ստորև ներկայացնում ենք ձևաչափը.

df <- as.data.frame(tbl(conn,sql("select 'select ' || col_names|| ' from ' || table_name as q1 from ( select distinct table_name, listagg(col_name,',') within group (order by col_name)
                                 over (partition by table_name) as col_names
                                 from attribute_config
                                 where active = 'Y'
                                 order by table_name )
                                 group by 1")))

Ավարտելուց հետո ես այս տվյալների շրջանակի յուրաքանչյուր տող վերագրեցի նոր տվյալների շրջանակին և ստացա ելքը՝ օգտագործելով ստորև.

df1 ‹- tbl(conn,sql(df[1,]))

Ես գիտեմ, որ սա կլոր լուծում է: Բայց դա աշխատում է !! Ստացվում է մոտ 17 միլիոն ձայնագրություն 1 վայրկյանում:

14.05.2018
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..