På denna sida
Tänk dig en supportskärm som behöver ett enda svar: är ordern betald? Betalningssystemet har svaret. Ett integrationsteam föreslår att kopiera varje betalningspost till en andra databas, hålla kopian aktuell och läsa den när en medarbetare öppnar ordern. Det är ett hypotetiskt driftsexempel, inte det analytiska användningsfall som den citerade demonstrationen visar.
Kopian kan behövas. Fråga först om skärmen just nu bara behöver ett tillåtet svar.
En teknisk demonstration av analytiska frågor mellan moln visar en fråga över befintliga datakällor utan att först skapa en permanent kopia av källtabellen i målsystemet. Samma demonstration skapar också en sammanfogad tabell. Fjärråtkomst och kopiering kan alltså finnas i ett och samma flöde. Det är en verklig produktfunktion, inget löfte om att en analytisk frågetjänst passar en operativ skärm för betalningsstatus eller att data aldrig flyttas under körningen. Google Clouds dokumentation om federerade frågor förklarar att vissa resultat från externa frågor tillfälligt flyttas in i frågetjänsten. Den viktiga skillnaden går mellan en permanent synkroniserad kopia och en avgränsad läsning för en viss fråga.
Utgå från mottagarens jobb
Två olika begäranden gömmer sig i ”koppla ihop systemen”. Den ena frågar: ”Vad säger källan nu?” Den andra: ”Vilket tillstånd måste målsystemet hålla för att kunna agera senare?”
För supportskärmen kan en avgränsad läsning returnera orderstatus och tidpunkten då den lästes. Källan förblir styrande. Om källan är nere ska skärmen säga att aktuell status inte finns eller tydligt märka ett cachat svar. En andra kopia skapar en ny fråga: vilken status gäller när de skiljer sig?
En mottagare ber källan om ett aktuellt svar genom en tillåten avgränsad fråga; tillfälliga data kan behandlas utan att en varaktig kopia skapas.
För en kampanj om övergivna varukorgar kan målsystemet behöva agera utan att någon öppnar en skärm. Det kan kräva en händelse i tid, samtyckesstatus och möjlighet att avbryta ett köat meddelande efter köp. En aktiv läsning vid kampanjen kan fortfarande hjälpa, men ett svar på begäran är inte hela jobbet.
| Mottagaren behöver | Första design att testa | Viktigaste avvägning |
|---|---|---|
| Ett aktuellt svar | Avgränsad fråga till ägaren | Beror på åtkomst till källan och svarstid |
| Fortlöpande åtgärd vid ändring | Händelse eller minimal synkronisering av ändringar | Måste hantera försening, dubbletter och missade händelser |
| Historiskt beslutsunderlag | Versionsmärkt ögonblicksbild av relevanta fält | Kräver regler för lagring och åtkomst |
| Drift när källan är nere | Tydlig cache eller kopia | Kan vara gammal; kräver regel för ålder |
Tabellen hjälper ett beslut, den är inget prestandatest. Den ger ingen allmän gräns mellan att fråga och kopiera.
En kopia fortsätter kosta
Den första exporten är lätt att underskatta eftersom den tar slut. Kopian fortsätter leva. Ett nytt fält dyker upp, en identifierare slås ihop, en behörighet ändras eller en gammal händelse kommer efter en ny. Nu kan målsystemet ha ett svar som källan skulle avvisa.
Kostnaden är inte bara lagring. Den är avstämning: bevaka eftersläpning, spela upp missade ändringar, radera data när det krävs och förklara varför ett beslut byggde på gårdagens värde. Det arbetet är rimligt när målsystemet behöver eget tillstånd. Det är onödigt när leveransen bara är ett aktuellt svar.
En fråga har också kostnader. Den kan belasta källan, visa fält för en annan part, korsa en nätverksgräns och misslyckas vid sämsta tillfället. Frågeplaneraren kan behandla mer data än det synliga resultatet antyder. Dokumentationen om federation beskriver detaljer som bör granskas innan fjärrfrågor ses som noll dataflytt.
En säker fråga har ett snävt syfte och ett litet resultat. Namnge fältets ägare. Begränsa den frågandes behörighet. Bestäm hur gammalt ett svar får vara, hur länge frågan får vänta och vad gränssnittet säger vid timeout. Låt avläsningstiden följa svaret.
När en kontrollerad kopia är värd kostnaden
”Lokala data ger oss ett förutsägbart gränssnitt och färre fjärrfel.” Det är ett seriöst argument. Om arbetsflödet har ett hårt krav på svarstid eller måste fortsätta vid avbrott hos källan kan en styrd kopia vara rätt design.
Ordet styrd gör jobbet. Bestäm vilka fält som kopieras, hur snabbt de ska uppdateras, vad som händer när uppdateringar stannar och när mottagaren vägrar agera på gammalt tillstånd. Testa en sen rättning lika väl som normalfallet. Ett snabbt gammalt svar kan vara värre än ett tydligt uteblivet svar.
Börja med mottagarens minsta fråga. Om en läsning besvarar den, låt källan bestämma. Om åtgärden kräver lokalt tillstånd, kopiera bara vad åtgärden motiverar.
Ett litet försök kan avgöra valet utan en allmän kopieringslösning. Välj en fråga som mottagaren verkligen ställer, ange hur aktuellt svaret måste vara och kör en tillåten fråga mot källan. Mät svarstid, belastning på källan och felbeteende med realistiska åtkomstregler. Testa sedan det snävaste kopierade tillstånd som skulle duga. Jämför inte bara svarstid utan även rättning, radering och avbrott. Guiden för integrationsplanering ger större arbetsflödessammanhang; försöket avgör var svaret hör hemma. Ingen väg är automatiskt billigare när löpande underhåll räknas.
En anslutning mäts inte i hur många rader som passerade den.
Vanliga Frågor
När är en fjärrfråga bättre än synkronisering?
När någon behöver ett svar från styrande källa och kan acceptera dess tillgänglighet och svarstid. Avgränsa åtkomsten och visa när svaret lästes.
När måste data kopieras?
Kopiera minsta nödvändiga tillstånd när ett annat system måste agera utan en aktiv fråga, behålla en granskningsbar ögonblicksbild eller möta ett krav på svarstid eller tillgänglighet som källan inte kan uppfylla.
Betyder frågor direkt mot källan att data aldrig flyttas?
Nej. En federationstjänst kan flytta mellanliggande data eller resultat för att köra frågan. Kontrollera leverantörens dokumentation om körning, lagring och säkerhet.