[{"data":1,"prerenderedAt":4314},["ShallowReactive",2],{"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fclickhouse-app":3,"navigation-developers":1381,"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fclickhouse":3340,"surr-\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fclickhouse":4311},{"id":4,"title":5,"author":6,"body":7,"description":1371,"extension":1372,"meta":1373,"navigation":1375,"path":1376,"seo":1377,"sitemap":1378,"stem":1379,"__hash__":1380},"content\u002F2.developers\u002F5.API-docs\u002F7.pathway-io\u002F130.clickhouse.md","pw.io.clickhouse",null,{"type":8,"value":9,"toc":1366},"minimark",[10,14,28,65,70,374,388,402,417,456,471,526,549,607,630,646,877,880,883,951,962,969,1045,1052,1140,1145,1148,1167,1172,1181,1340,1346,1362],[11,12,5],"h1",{"id":13},"pwioclickhouse",[15,16,17,21,22,27],"p",{},[18,19,20],"strong",{},"This module is available when using one of the following licenses only:"," ",[23,24,26],"a",{"href":25},"\u002Fpricing","Pathway Scale, Pathway Enterprise",".",[15,29,30,31,35,36,39,40,43,44,47,48,51,52,55,56,58,59,27],{},"The table below explains how each Pathway Live Data Framework type is stored in ClickHouse. Optional columns are stored as the ",[32,33,34],"code",{},"Nullable"," wrapper of the type below, except ",[32,37,38],{},"bytes",", which is always stored as ",[32,41,42],{},"Nullable(String)",". The array-like types (",[32,45,46],{},"list",", ",[32,49,50],{},"tuple"," and ",[32,53,54],{},"np.ndarray",") are supported in specific forms only, described in the table; because ClickHouse arrays cannot be wrapped in ",[32,57,34],{},", an optional array-like column is not supported. For the full list of ClickHouse types you can refer to the ",[23,60,64],{"href":61,"rel":62},"https:\u002F\u002Fclickhouse.com\u002Fdocs\u002Fen\u002Fsql-reference\u002Fdata-types",[63],"nofollow","official documentation",[66,67,69],"h2",{"id":68},"pathway-live-data-framework-types-serialization-into-clickhouse","Pathway Live Data Framework types serialization into ClickHouse",[71,72,73,86],"table",{},[74,75,76],"thead",{},[77,78,79,83],"tr",{},[80,81,82],"th",{},"Framework’s type",[80,84,85],{},"ClickHouse type",[87,88,89,102,114,126,138,149,160,173,184,196,208,220,276,335],"tbody",{},[77,90,91,97],{},[92,93,94],"td",{},[32,95,96],{},"bool",[92,98,99],{},[32,100,101],{},"Bool",[77,103,104,109],{},[92,105,106],{},[32,107,108],{},"int",[92,110,111],{},[32,112,113],{},"Int64",[77,115,116,121],{},[92,117,118],{},[32,119,120],{},"float",[92,122,123],{},[32,124,125],{},"Float64",[77,127,128,133],{},[92,129,130],{},[32,131,132],{},"pointer",[92,134,135],{},[32,136,137],{},"String",[77,139,140,145],{},[92,141,142],{},[32,143,144],{},"str",[92,146,147],{},[32,148,137],{},[77,150,151,155],{},[92,152,153],{},[32,154,38],{},[92,156,157,159],{},[32,158,42],{},", containing the raw binary data",[77,161,162,167],{},[92,163,164],{},[32,165,166],{},"Naive DateTime",[92,168,169,172],{},[32,170,171],{},"DateTime64(9, 'UTC')",", the UTC timezone is used when passing the value to ClickHouse",[77,174,175,180],{},[92,176,177],{},[32,178,179],{},"UTC DateTime",[92,181,182],{},[32,183,171],{},[77,185,186,191],{},[92,187,188],{},[32,189,190],{},"Duration",[92,192,193,195],{},[32,194,113],{},", serialized and deserialized with nanosecond precision",[77,197,198,203],{},[92,199,200],{},[32,201,202],{},"JSON",[92,204,205,207],{},[32,206,137],{},", containing the serialized JSON value",[77,209,210,215],{},[92,211,212],{},[32,213,214],{},"pw.PyObjectWrapper",[92,216,217,219],{},[32,218,137],{},", containing base64-encoded serialized encoder. This value can be deserialized back, if read by other Pathway Live Data Framework connector",[77,221,222,227],{},[92,223,224],{},[32,225,226],{},"list[T]",[92,228,229,232,233,236,237,47,239,47,241,47,243,47,245,47,247,47,249,251,252,254,255,258,259,262,263,265,266,47,269,47,272,275],{},[32,230,231],{},"Array(\u003CT>)",", where ",[32,234,235],{},"T"," is one of ",[32,238,96],{},[32,240,108],{},[32,242,120],{},[32,244,144],{},[32,246,132],{},[32,248,202],{},[32,250,190],{}," or ",[32,253,214],{},"; each element is stored exactly as that scalar type is stored on its own. Datetime elements (",[32,256,257],{},"list[Naive DateTime]"," \u002F ",[32,260,261],{},"list[UTC DateTime]",") are not supported because the array column would only keep second precision. Only one level of nesting is supported: a list whose element type is itself a list, an optional, or ",[32,264,38],{}," (i.e. ",[32,267,268],{},"list[list[...]]",[32,270,271],{},"list[T | None]",[32,273,274],{},"list[bytes]",") is not supported either. All of these unsupported cases are rejected when the computation starts",[77,277,278,282],{},[92,279,280],{},[32,281,50],{},[92,283,284,285,288,289,47,291,47,293,47,295,47,297,47,299,47,301,251,303,305,306,309,310,312,313,315,316,319,320,323,324,326,327,330,331,334],{},"a fixed-length tuple whose elements are ",[18,286,287],{},"all the same"," supported scalar type (one of ",[32,290,96],{},[32,292,108],{},[32,294,120],{},[32,296,144],{},[32,298,132],{},[32,300,202],{},[32,302,190],{},[32,304,214],{},") — for example ",[32,307,308],{},"tuple[float, float, float]"," — is stored as ",[32,311,231],{}," exactly like a ",[32,314,226],{}," (the tuple length is not preserved, because a ClickHouse ",[32,317,318],{},"Array"," is variable-length). A variable-length ",[32,321,322],{},"tuple[T, ...]"," is treated as a ",[32,325,226],{},". A heterogeneous tuple (mixed element types, e.g. ",[32,328,329],{},"tuple[int, str]",") would require a ClickHouse ",[32,332,333],{},"Tuple",", which the connector does not support; it, and tuples of an unsupported element type, are rejected when the computation starts",[77,336,337,341],{},[92,338,339],{},[32,340,54],{},[92,342,343,344,347,348,251,350,352,353,356,357,258,360,363,364,51,367,370,371,373],{},"a ",[18,345,346],{},"one-dimensional",", element-typed ",[32,349,108],{},[32,351,120],{}," array (e.g. ",[32,354,355],{},"np.ndarray[tuple[int], np.dtype[np.float64]]",") is stored as ",[32,358,359],{},"Array(Int64)",[32,361,362],{},"Array(Float64)",", which ClickHouse vector functions such as ",[32,365,366],{},"cosineDistance",[32,368,369],{},"L2Distance"," can operate on. Multi-dimensional arrays, arrays of unknown dimensionality (a bare ",[32,372,54],{},"), and other element types are not supported and are rejected when the computation starts",[66,375,377,380,381,387],{"id":376},"pathway.io.clickhouse.write",[18,378,379],{},"write","(",[382,383,386],"span",{"className":384},[385],"sphinx-paramslist","table, *, connection_string, table_name, output_table_type='stream_of_changes', primary_key=None, init_mode='default', max_batch_size=None, name=None, sort_by=None",")",[15,389,390,398,399,401],{},[23,391,395],{"className":392,"href":394},[393],"sphinx-source-url","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fpython\u002Fpathway\u002Fio\u002Fclickhouse\u002F__init__.py#L17-L281",[382,396,397],{},"source","Writes ",[32,400,71],{}," to a ClickHouse table.",[15,403,404,405,408,409,412,413,416],{},"The output table supports two formats, controlled by ",[32,406,407],{},"output_table_type",":\na ",[32,410,411],{},"\"stream_of_changes\""," format that appends the full history of updates, and\na ",[32,414,415],{},"\"snapshot\""," format that maintains the current state of the table.",[15,418,419,420,422,423,426,427,430,431,434,435,438,439,51,441,443,444,447,448,451,452,455],{},"In ",[32,421,411],{}," mode (the default) the output includes every column\nof the input table plus two additional columns: ",[32,424,425],{},"time",", which holds the\nPathway Live Data Framework minibatch time of the change, and ",[32,428,429],{},"diff",", which\ndescribes the type of change (",[32,432,433],{},"1"," for a row insertion and ",[32,436,437],{},"-1"," for a row\ndeletion). A row update is represented as a deletion of the old value followed\nby an insertion of the new one, both within the same minibatch. Because\n",[32,440,425],{},[32,442,429],{}," are reserved column names in this format, the input table\nmust not contain columns with these names; otherwise a ",[32,445,446],{},"ValueError"," is raised\nat construction time. Each ",[32,449,450],{},"pw.run()"," invocation appends to the table; use\n",[32,453,454],{},"init_mode=\"replace\""," to recreate it from scratch instead.",[15,457,419,458,460,461,466,467,470],{},[32,459,415],{}," mode the connector maintains the current state of the table\nrather than its history. ClickHouse is an insert-only, append-oriented store\nwith no synchronous primary-key upsert or delete, so the current state is\nmaintained with a ",[23,462,465],{"href":463,"rel":464},"https:\u002F\u002Fclickhouse.com\u002Fdocs\u002Fengines\u002Ftable-engines\u002Fmergetree-family\u002Freplacingmergetree",[63],"ReplacingMergeTree(version, is_deleted)","\nengine ordered by the ",[32,468,469],{},"primary_key"," columns, plus two bookkeeping columns\nthe connector appends to every row:",[472,473,474,492],"ul",{},[475,476,477,480,481,485,486,488,489,491],"li",{},[32,478,479],{},"version"," — a 64-bit counter that increases by one with every change, in\nthe order changes are produced. It is ",[482,483,484],"em",{},"not"," the minibatch ",[32,487,425],{}," used in\n",[32,490,411],{}," mode; see below for why a separate counter is\nneeded.",[475,493,494,497,498,500,501,504,505,507,508,510,511,514,515,518,519,514,522,525],{},[32,495,496],{},"is_deleted"," — ",[32,499,433],{}," if the row is a retraction (deletion), ",[32,502,503],{},"0"," if it is\na live state row. This is exactly the ",[32,506,429],{}," of ",[32,509,411],{},"\nmode re-expressed as a flag (",[32,512,513],{},"diff = -1"," becomes ",[32,516,517],{},"is_deleted = 1",",\n",[32,520,521],{},"diff = 1",[32,523,524],{},"is_deleted = 0",").",[15,527,528,529,532,533,536,537,539,540,21,543,545,546,548],{},"Every Pathway change is just appended as a row (no in-place update). What\nturns that append-only stream into a live snapshot is how ",[32,530,531],{},"ReplacingMergeTree","\nbehaves at the ClickHouse level: when it merges data parts in the background,\nit collapses all rows that share the same ",[32,534,535],{},"ORDER BY"," key (here the\n",[32,538,469],{},") down to the single row with the ",[18,541,542],{},"largest",[32,544,479],{},", and\nif that surviving row has ",[32,547,517],{}," it is physically dropped. Both\ncolumns are therefore required, and each does a specific job:",[472,550,551,597],{},[475,552,553,555,556,558,559,562,563,565,566,568,569,571,572,574,575,578,579,581,582,584,585,587,588,590,591,593,594,596],{},[32,554,479],{}," makes “the newest write wins” deterministic, and is the reason\nthis mode needs a dedicated counter rather than reusing ",[32,557,425],{},". An update\nto a row is emitted as a retraction of the old value followed by an insertion\nof the new one — both with the same primary key ",[482,560,561],{},"and the same"," minibatch\n",[32,564,425],{}," — so ",[32,567,425],{}," cannot tell the engine which one is newer. ",[32,570,479],{},"\ncan: the connector assigns each change the next counter value in production\norder, emitting retractions before insertions within a minibatch, so the\ninsertion always gets the higher ",[32,573,479],{}," and the merge keeps the new\nvalues. (The counter only ever has to break ties between rows of the ",[482,576,577],{},"same","\nprimary key; identical ",[32,580,479],{}," values across different keys are\nirrelevant, since ",[32,583,531],{}," collapses each ",[32,586,535],{}," key\nindependently.) Reusing ",[32,589,425],{}," would give the retraction and the insertion\nan equal ",[32,592,479],{},", and ",[32,595,531],{}," breaks such ties\narbitrarily — it could keep the retraction and silently drop the update.",[475,598,599,601,602,51,604,606],{},[32,600,496],{}," lets a key be removed at all. Because only inserts are\npossible, a deletion is represented as an appended row with the highest\n",[32,603,479],{},[32,605,517],{},"; the merge then removes that key. Without\nit a deleted key could never leave the table.",[15,608,609,610,615,616,619,620,622,623,626,627,629],{},"Because merges run asynchronously, query the table with\n",[23,611,614],{"href":612,"rel":613},"https:\u002F\u002Fclickhouse.com\u002Fdocs\u002Fsql-reference\u002Fstatements\u002Fselect\u002Ffrom#final-modifier",[63],"SELECT … FINAL","\nto observe the current, deduplicated state on demand — ",[32,617,618],{},"FINAL"," applies the\nsame keep-largest-version \u002F drop-",[32,621,496],{}," logic at query time. A plain\n",[32,624,625],{},"SELECT"," (without ",[32,628,618],{},") may still return superseded or deleted rows\nuntil a merge has run.",[15,631,632,51,634,636,637,639,640,642,643,645],{},[32,633,479],{},[32,635,496],{}," are reserved column names in this format, so\nthe input table must not contain columns with these names. This mode requires\nthe ",[32,638,469],{}," parameter and runs on a single worker so that the\n",[32,641,479],{}," counter is globally monotonic; on start-up it is seeded above the\ntable’s current maximum ",[32,644,479],{}," so that a restart against an existing\ntable keeps producing winning rows.",[472,647,648,869],{},[475,649,650,653],{},[18,651,652],{},"Parameters",[472,654,655,667,686,694,730,754,833,845,855],{},[475,656,657,659,660,666],{},[18,658,71],{}," (",[23,661,663],{"href":662},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-table#pathway.Table",[32,664,665],{},"Table",") – The table to write to ClickHouse.",[475,668,669,659,672,674,675,678,679,682,683,27],{},[18,670,671],{},"connection_string",[32,673,144],{},") – The connection string for the ClickHouse server, in the\nnative-protocol form\n",[32,676,677],{},"\"tcp:\u002F\u002Fuser:password@host:9000\u002Fdatabase\"",". Connection options such\nas ",[32,680,681],{},"compression"," may be appended as query parameters, e.g.\n",[32,684,685],{},"\"tcp:\u002F\u002Flocalhost:9000\u002Fdefault?compression=lz4\"",[475,687,688,659,691,693],{},[18,689,690],{},"table_name",[32,692,144],{},") – The name of the target table in ClickHouse.",[475,695,696,659,698,701,702,47,705,708,709,711,712,714,715,717,718,720,721,723,724,726,727,525],{},[18,697,407],{},[32,699,700],{},"Literal","[",[32,703,704],{},"'stream_of_changes'",[32,706,707],{},"'snapshot'","]) – Either ",[32,710,411],{}," (the default), which\nappends the full history of changes with ",[32,713,425],{},"\u002F",[32,716,429],{}," columns, or\n",[32,719,415],{},", which maintains the current state of the table in a\n",[32,722,531],{}," keyed by ",[32,725,469],{}," (queried with\n",[32,728,729],{},"SELECT ... FINAL",[475,731,732,659,734,701,737,701,740,746,747,750,751,753],{},[18,733,469],{},[32,735,736],{},"Optional",[32,738,739],{},"Iterable",[23,741,743],{"href":742},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway#pathway.ColumnReference",[32,744,745],{},"ColumnReference","]]) – The columns identifying each row. Required when\n",[32,748,749],{},"output_table_type=\"snapshot\""," (they become the table’s ",[32,752,535],{},");\nmust not be set otherwise.",[475,755,756,659,759,701,761,47,764,47,767,770,771,774,775,778,779,782,783,785,786,789,790,714,792,794,795,797,798,800,801,789,803,714,805,794,807,809,810,812,813,815,816,818,819,821,822,825,826,714,829,832],{},[18,757,758],{},"init_mode",[32,760,700],{},[32,762,763],{},"'default'",[32,765,766],{},"'create_if_not_exists'",[32,768,769],{},"'replace'","]) – Determines how the table is initialized before the first write.\n",[32,772,773],{},"\"default\""," (the default) does nothing and requires the table to\nalready exist. ",[32,776,777],{},"\"create_if_not_exists\""," creates the table if it is\nnot present. ",[32,780,781],{},"\"replace\""," drops the table if it exists and recreates\nit. In the two latter modes the table is created with the engine and\nmetadata columns for the chosen ",[32,784,407],{},": a ",[32,787,788],{},"MergeTree","\nwith ",[32,791,425],{},[32,793,429],{}," columns for ",[32,796,411],{},", or a\n",[32,799,465],{}," ordered by ",[32,802,469],{},[32,804,479],{},[32,806,496],{},[32,808,415],{},".\nRegardless of ",[32,811,758],{},", the connector validates the destination\ntable when the computation starts: it must exist and contain every\noutput column (the input columns plus the metadata columns) with a\ncompatible type, and in ",[32,814,415],{}," mode it must use the\n",[32,817,531],{}," engine. A missing table, an absent column, an\nincompatible column type, or a wrong engine is reported immediately\nrather than on the first write. ClickHouse inserts perform almost no\nimplicit conversion, so a pre-existing column must have exactly the type\nthe connector produces for it (a ",[32,820,137],{}," column may also be\n",[32,823,824],{},"FixedString(N)",", and a datetime column may be any\n",[32,827,828],{},"DateTime",[32,830,831],{},"DateTime64"," variant).",[475,834,835,659,838,840,841,844],{},[18,836,837],{},"max_batch_size",[32,839,108],{}," | ",[32,842,843],{},"None",") – The maximum number of changes to accumulate before sending\nan insertion block to the server.",[475,846,847,659,850,840,852,854],{},[18,848,849],{},"name",[32,851,144],{},[32,853,843],{},") – A unique name for the connector. If provided, this name will be used\nin logs and monitoring dashboards.",[475,856,857,659,860,701,862,701,864,868],{},[18,858,859],{},"sort_by",[32,861,736],{},[32,863,739],{},[23,865,866],{"href":742},[32,867,745],{},"]]) – If specified, the output is sorted in ascending order based on the\nvalues of the given columns within each minibatch. When multiple\ncolumns are provided, the corresponding value tuples are compared\nlexicographically.",[475,870,871,874,843],{},[18,872,873],{},"Returns",[875,876],"br",{},[15,878,879],{},"Example:",[15,881,882],{},"The easiest way to run ClickHouse locally is with Docker. You can use the\nofficial image and start it like this:",[884,885,890],"pre",{"className":886,"code":887,"language":888,"meta":889,"style":889},"language-bash shiki shiki-themes material-theme-palenight","docker pull clickhouse\u002Fclickhouse-server\ndocker run -d --name clickhouse \\\n    -p 8123:8123 -p 9000:9000 \\\n    clickhouse\u002Fclickhouse-server\n","bash","",[32,891,892,907,928,945],{"__ignoreMap":889},[382,893,896,900,904],{"class":894,"line":895},"line",1,[382,897,899],{"class":898},"s5Dmg","docker",[382,901,903],{"class":902},"sfyAc"," pull",[382,905,906],{"class":902}," clickhouse\u002Fclickhouse-server\n",[382,908,910,912,915,918,921,924],{"class":894,"line":909},2,[382,911,899],{"class":898},[382,913,914],{"class":902}," run",[382,916,917],{"class":902}," -d",[382,919,920],{"class":902}," --name",[382,922,923],{"class":902}," clickhouse",[382,925,927],{"class":926},"s0W1g"," \\\n",[382,929,931,934,937,940,943],{"class":894,"line":930},3,[382,932,933],{"class":902},"    -p",[382,935,936],{"class":902}," 8123:8123",[382,938,939],{"class":902}," -p",[382,941,942],{"class":902}," 9000:9000",[382,944,927],{"class":926},[382,946,948],{"class":894,"line":947},4,[382,949,950],{"class":902},"    clickhouse\u002Fclickhouse-server\n",[15,952,953,954,957,958,961],{},"Port ",[32,955,956],{},"9000"," is used for the native protocol, which this connector relies on.\nPort ",[32,959,960],{},"8123"," exposes the HTTP interface, which is convenient for inspecting\nthe data afterwards.",[15,963,964,965,968],{},"You can now write a simple program. In this example a table with one column\ncalled ",[32,966,967],{},"\"data\""," is created and sent to the database:",[884,970,974],{"className":971,"code":972,"language":973,"meta":889,"style":889},"language-python shiki shiki-themes material-theme-palenight","import pathway as pw\ntable = pw.debug.table_from_markdown('''\n     | data\n   1 | Hello\n   2 | World\n''')\n","python",[32,975,976,991,1020,1025,1030,1036],{"__ignoreMap":889},[382,977,978,982,985,988],{"class":894,"line":895},[382,979,981],{"class":980},"s6cf3","import",[382,983,984],{"class":926}," pathway ",[382,986,987],{"class":980},"as",[382,989,990],{"class":926}," pw\n",[382,992,993,996,1000,1003,1005,1009,1011,1015,1017],{"class":894,"line":909},[382,994,995],{"class":926},"table ",[382,997,999],{"class":998},"sAklC","=",[382,1001,1002],{"class":926}," pw",[382,1004,27],{"class":998},[382,1006,1008],{"class":1007},"s-wAU","debug",[382,1010,27],{"class":998},[382,1012,1014],{"class":1013},"sdLwU","table_from_markdown",[382,1016,380],{"class":998},[382,1018,1019],{"class":998},"'''\n",[382,1021,1022],{"class":894,"line":930},[382,1023,1024],{"class":902},"     | data\n",[382,1026,1027],{"class":894,"line":947},[382,1028,1029],{"class":902},"   1 | Hello\n",[382,1031,1033],{"class":894,"line":1032},5,[382,1034,1035],{"class":902},"   2 | World\n",[382,1037,1039,1042],{"class":894,"line":1038},6,[382,1040,1041],{"class":998},"'''",[382,1043,1044],{"class":998},")\n",[15,1046,1047,1048,1051],{},"This table can now be written to ClickHouse. If the output table is called\n",[32,1049,1050],{},"\"test\""," and you want the connector to create it for you, the code looks\nlike this:",[884,1053,1055],{"className":971,"code":1054,"language":973,"meta":889,"style":889},"pw.io.clickhouse.write(\n    table,\n    connection_string=\"tcp:\u002F\u002Flocalhost:9000\u002Fdefault\",\n    table_name=\"test\",\n    init_mode=\"create_if_not_exists\",\n)\n",[32,1056,1057,1079,1086,1104,1120,1136],{"__ignoreMap":889},[382,1058,1059,1062,1064,1067,1069,1072,1074,1076],{"class":894,"line":895},[382,1060,1061],{"class":926},"pw",[382,1063,27],{"class":998},[382,1065,1066],{"class":1007},"io",[382,1068,27],{"class":998},[382,1070,1071],{"class":1007},"clickhouse",[382,1073,27],{"class":998},[382,1075,379],{"class":1013},[382,1077,1078],{"class":998},"(\n",[382,1080,1081,1084],{"class":894,"line":909},[382,1082,1083],{"class":1013},"    table",[382,1085,518],{"class":998},[382,1087,1088,1092,1094,1097,1100,1102],{"class":894,"line":930},[382,1089,1091],{"class":1090},"s7ZW3","    connection_string",[382,1093,999],{"class":998},[382,1095,1096],{"class":998},"\"",[382,1098,1099],{"class":902},"tcp:\u002F\u002Flocalhost:9000\u002Fdefault",[382,1101,1096],{"class":998},[382,1103,518],{"class":998},[382,1105,1106,1109,1111,1113,1116,1118],{"class":894,"line":947},[382,1107,1108],{"class":1090},"    table_name",[382,1110,999],{"class":998},[382,1112,1096],{"class":998},[382,1114,1115],{"class":902},"test",[382,1117,1096],{"class":998},[382,1119,518],{"class":998},[382,1121,1122,1125,1127,1129,1132,1134],{"class":894,"line":1032},[382,1123,1124],{"class":1090},"    init_mode",[382,1126,999],{"class":998},[382,1128,1096],{"class":998},[382,1130,1131],{"class":902},"create_if_not_exists",[382,1133,1096],{"class":998},[382,1135,518],{"class":998},[382,1137,1138],{"class":894,"line":1038},[382,1139,1044],{"class":998},[15,1141,1142,1143,27],{},"You can run this pipeline with ",[32,1144,450],{},[15,1146,1147],{},"Once the program has finished, you can inspect the data with any ClickHouse\nclient, for example over the HTTP interface:",[884,1149,1151],{"className":886,"code":1150,"language":888,"meta":889,"style":889},"curl 'http:\u002F\u002Flocalhost:8123\u002F?query=SELECT%20*%20FROM%20test'\n",[32,1152,1153],{"__ignoreMap":889},[382,1154,1155,1158,1161,1164],{"class":894,"line":895},[382,1156,1157],{"class":898},"curl",[382,1159,1160],{"class":998}," '",[382,1162,1163],{"class":902},"http:\u002F\u002Flocalhost:8123\u002F?query=SELECT%20*%20FROM%20test",[382,1165,1166],{"class":998},"'\n",[15,1168,1169,1170,27],{},"Note that if you run the program again it will append data to the table. To\nrecreate the table from scratch, use ",[32,1171,454],{},[15,1173,1174,1175,1177,1178,1180],{},"If instead of the history of changes you want to maintain the current state of\nthe table, use ",[32,1176,749],{}," and provide the column(s) that\nidentify each row via ",[32,1179,469],{},":",[884,1182,1184],{"className":971,"code":1183,"language":973,"meta":889,"style":889},"pets = pw.debug.table_from_markdown('''\n     | name  | owner\n   1 | Cat   | Alice\n   2 | Dog   | Bob\n''')\npw.io.clickhouse.write(\n    pets,\n    connection_string=\"tcp:\u002F\u002Flocalhost:9000\u002Fdefault\",\n    table_name=\"pets\",\n    output_table_type=\"snapshot\",\n    primary_key=[pets.name],\n    init_mode=\"create_if_not_exists\",\n)\n",[32,1185,1186,1207,1212,1217,1222,1228,1246,1254,1269,1285,1302,1320,1335],{"__ignoreMap":889},[382,1187,1188,1191,1193,1195,1197,1199,1201,1203,1205],{"class":894,"line":895},[382,1189,1190],{"class":926},"pets ",[382,1192,999],{"class":998},[382,1194,1002],{"class":926},[382,1196,27],{"class":998},[382,1198,1008],{"class":1007},[382,1200,27],{"class":998},[382,1202,1014],{"class":1013},[382,1204,380],{"class":998},[382,1206,1019],{"class":998},[382,1208,1209],{"class":894,"line":909},[382,1210,1211],{"class":902},"     | name  | owner\n",[382,1213,1214],{"class":894,"line":930},[382,1215,1216],{"class":902},"   1 | Cat   | Alice\n",[382,1218,1219],{"class":894,"line":947},[382,1220,1221],{"class":902},"   2 | Dog   | Bob\n",[382,1223,1224,1226],{"class":894,"line":1032},[382,1225,1041],{"class":998},[382,1227,1044],{"class":998},[382,1229,1230,1232,1234,1236,1238,1240,1242,1244],{"class":894,"line":1038},[382,1231,1061],{"class":926},[382,1233,27],{"class":998},[382,1235,1066],{"class":1007},[382,1237,27],{"class":998},[382,1239,1071],{"class":1007},[382,1241,27],{"class":998},[382,1243,379],{"class":1013},[382,1245,1078],{"class":998},[382,1247,1249,1252],{"class":894,"line":1248},7,[382,1250,1251],{"class":1013},"    pets",[382,1253,518],{"class":998},[382,1255,1257,1259,1261,1263,1265,1267],{"class":894,"line":1256},8,[382,1258,1091],{"class":1090},[382,1260,999],{"class":998},[382,1262,1096],{"class":998},[382,1264,1099],{"class":902},[382,1266,1096],{"class":998},[382,1268,518],{"class":998},[382,1270,1272,1274,1276,1278,1281,1283],{"class":894,"line":1271},9,[382,1273,1108],{"class":1090},[382,1275,999],{"class":998},[382,1277,1096],{"class":998},[382,1279,1280],{"class":902},"pets",[382,1282,1096],{"class":998},[382,1284,518],{"class":998},[382,1286,1288,1291,1293,1295,1298,1300],{"class":894,"line":1287},10,[382,1289,1290],{"class":1090},"    output_table_type",[382,1292,999],{"class":998},[382,1294,1096],{"class":998},[382,1296,1297],{"class":902},"snapshot",[382,1299,1096],{"class":998},[382,1301,518],{"class":998},[382,1303,1305,1308,1311,1313,1315,1317],{"class":894,"line":1304},11,[382,1306,1307],{"class":1090},"    primary_key",[382,1309,1310],{"class":998},"=[",[382,1312,1280],{"class":1013},[382,1314,27],{"class":998},[382,1316,849],{"class":1007},[382,1318,1319],{"class":998},"],\n",[382,1321,1323,1325,1327,1329,1331,1333],{"class":894,"line":1322},12,[382,1324,1124],{"class":1090},[382,1326,999],{"class":998},[382,1328,1096],{"class":998},[382,1330,1131],{"class":902},[382,1332,1096],{"class":998},[382,1334,518],{"class":998},[382,1336,1338],{"class":894,"line":1337},13,[382,1339,1044],{"class":998},[15,1341,1342,1343,1345],{},"Because the deduplication happens during background merges, query the snapshot\nwith ",[32,1344,618],{}," to always observe the current state:",[884,1347,1349],{"className":886,"code":1348,"language":888,"meta":889,"style":889},"curl 'http:\u002F\u002Flocalhost:8123\u002F?query=SELECT%20name,owner%20FROM%20pets%20FINAL'\n",[32,1350,1351],{"__ignoreMap":889},[382,1352,1353,1355,1357,1360],{"class":894,"line":895},[382,1354,1157],{"class":898},[382,1356,1160],{"class":998},[382,1358,1359],{"class":902},"http:\u002F\u002Flocalhost:8123\u002F?query=SELECT%20name,owner%20FROM%20pets%20FINAL",[382,1361,1166],{"class":998},[1363,1364,1365],"style",{},"html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html pre.shiki code .s0W1g, html code.shiki .s0W1g{--shiki-default:#BABED8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html pre.shiki code .sdLwU, html code.shiki .sdLwU{--shiki-default:#82AAFF}html pre.shiki code .s7ZW3, html code.shiki .s7ZW3{--shiki-default:#BABED8;--shiki-default-font-style:italic}",{"title":889,"searchDepth":909,"depth":909,"links":1367},[1368,1369],{"id":68,"depth":909,"text":69},{"id":376,"depth":909,"text":1370},"write(table, *, connection_string, table_name, output_table_type='stream_of_changes', primary_key=None, init_mode='default', max_batch_size=None, name=None, sort_by=None)","This module is available when using one of the following licenses only: Pathway Scale, Pathway Enterprise.","md",{"sidebar":1374},"API",true,"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fclickhouse",{"title":5,"description":1371},{"loc":1376},"2.developers\u002F5.API-docs\u002F7.pathway-io\u002F130.clickhouse","RGpfzmKMvkUNM4AFdoQQHjAIV4LeRoPK_tf3C05hPYU",[1382],{"title":1383,"path":1384,"stem":1385,"children":1386,"page":1404},"Developers","\u002Fdevelopers","2.developers",[1387,2270,2593],{"title":1388,"path":1389,"stem":1390,"children":1391,"page":1404},"User Guide","\u002Fdevelopers\u002Fuser-guide","2.developers\u002F4.user-guide",[1392,1447,1718,1839,1917,2042,2174,2190,2249],{"title":1393,"meta":1394,"icon":1395,"path":1396,"stem":1397,"children":1398,"page":1404},"Introduction",{"icon":1395},"heroicons:book-open","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction","2.developers\u002F4.user-guide\u002F10.introduction",[1399,1405,1410,1415,1420,1425,1430,1435,1440],{"title":1400,"path":1401,"stem":1402,"meta":1403},"Welcome","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwelcome","2.developers\u002F4.user-guide\u002F10.introduction\u002F10.welcome",{"heading":1404,"toc":1404},false,{"title":1406,"path":1407,"stem":1408,"meta":1409},"Installation","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Finstallation","2.developers\u002F4.user-guide\u002F10.introduction\u002F20.installation",{"heading":1404,"toc":1404},{"title":1411,"path":1412,"stem":1413,"meta":1414},"Overview","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fpathway-overview","2.developers\u002F4.user-guide\u002F10.introduction\u002F30.pathway-overview",{},{"title":1416,"path":1417,"stem":1418,"meta":1419},"Starting Examples","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Ffirst_realtime_app_with_pathway","2.developers\u002F4.user-guide\u002F10.introduction\u002F40.first_realtime_app_with_pathway",{},{"title":1421,"path":1422,"stem":1423,"meta":1424},"Core Concepts","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fconcepts","2.developers\u002F4.user-guide\u002F10.introduction\u002F50.concepts",{},{"title":1426,"path":1427,"stem":1428,"meta":1429},"Why Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwhy-pathway","2.developers\u002F4.user-guide\u002F10.introduction\u002F60.why-pathway",{},{"title":1431,"path":1432,"stem":1433,"meta":1434},"Licensing Guide","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Flicensing-guide","2.developers\u002F4.user-guide\u002F10.introduction\u002F65.licensing-guide",{"heading":1404,"toc":1404},{"title":1436,"path":1437,"stem":1438,"meta":1439},"Streaming and Static Modes","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fstreaming-and-static-modes","2.developers\u002F4.user-guide\u002F10.introduction\u002F70.streaming-and-static-modes",{},{"title":1441,"path":1442,"stem":1443,"meta":1444},"Batch Processing in Python","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fbatch-processing","2.developers\u002F4.user-guide\u002F10.introduction\u002F80.batch-processing",{"thumbnail":1445,"thumbnailFit":1446},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fpathway-batch.png","contain",{"title":1448,"path":1449,"stem":1450,"children":1451,"page":1404},"Connect","\u002Fdevelopers\u002Fuser-guide\u002Fconnect","2.developers\u002F4.user-guide\u002F20.connect",[1452,1464,1469,1475,1480,1485,1497,1507,1512,1532],{"title":1453,"path":1454,"stem":1455,"meta":1456},"Basic Data Types","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fdatatypes","2.developers\u002F4.user-guide\u002F20.connect\u002F20.datatypes",{"date":1457,"tags":1458,"keywords":1460,"notebook_export_path":1463},"2024-01-26",[1459,71],"tutorial",[1461,1462],"type","schema","notebooks\u002Ftutorials\u002Fbasic_datatypes.ipynb",{"title":1465,"path":1466,"stem":1467,"meta":1468},"Connectors in Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors-in-pathway","2.developers\u002F4.user-guide\u002F20.connect\u002F30.connectors-in-pathway",{},{"title":1470,"path":1471,"stem":1472,"meta":1473},"Connectors list","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fpathway-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F35.pathway-connectors",{"layout":1474,"aside":1375,"toc":1404,"single":1375},"default",{"title":1476,"path":1477,"stem":1478,"meta":1479},"Defining Schema","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema","2.developers\u002F4.user-guide\u002F20.connect\u002F40.schema",{},{"title":1481,"path":1482,"stem":1483,"meta":1484},"Generate Data Streams with the demo Module","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fartificial-streams","2.developers\u002F4.user-guide\u002F20.connect\u002F50.artificial-streams",{},{"title":1486,"path":1487,"stem":1488,"meta":1489},"Automatic Generation of Schema Class","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema-generation","2.developers\u002F4.user-guide\u002F20.connect\u002F60.schema-generation",{"date":1490,"thumbnail":1491,"tags":1493,"keywords":1494,"notebook_export_path":1496},"2023-11-08",{"src":1492},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-custom-connectors.png",[1459,71],[1462,1461,202,1495],"connectors","notebooks\u002Ftutorials\u002Fschema-generation.ipynb",{"title":1498,"path":1499,"stem":1500,"meta":1501},"Dealing with JSON Data Type","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fjson_type","2.developers\u002F4.user-guide\u002F20.connect\u002F70.json_type",{"date":1502,"thumbnail":1503,"tags":1504,"keywords":1505,"notebook_export_path":1506},"2023-12-22","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-json.png",[1459,71],[202,1461,1462],"notebooks\u002Ftutorials\u002Fjson_type.ipynb",{"title":1508,"path":1509,"stem":1510,"meta":1511},"Switching from Batch to Streaming","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fswitch-from-batch-to-streaming","2.developers\u002F4.user-guide\u002F20.connect\u002F80.switch-from-batch-to-streaming",{},{"title":1513,"path":1514,"stem":1515,"meta":1516},"Live Web Scraping","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fpython-web-scraping","2.developers\u002F4.user-guide\u002F20.connect\u002F90.python-web-scraping",{"date":1517,"tags":1518,"keywords":1519,"tech_icons":1527,"thumbnail":1529,"deployment_tag":1530,"docker_github_link":1531},"2025-03-13",[1459,1495],[1520,1521,1522,1523,1524,1525,1526],"connector","scraping","WEB","Python","input","streaming","web scraping",[1528],"streamline:web","\u002Fassets\u002Fcontent\u002Fshowcases\u002Fweb_scraping\u002Fweb-scraping-th.png",[899],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fweb-scraping",{"title":1533,"path":1534,"stem":1535,"children":1536,"page":1404},"Connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors",[1537,1554,1566,1578,1587,1606,1617,1630,1644,1652,1664,1674,1683,1695,1708],{"title":1538,"path":1539,"stem":1540,"meta":1541},"File System Connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Ffs-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F05.fs-connector",{"date":1457,"tags":1542,"tech_icons":1543,"deployment_tag":1545,"keywords":1547,"notebook_export_path":1553},[1459,71],[1544],"lets-icons:file-fill",[1546,899],"jupyter",[1520,1548,1549,1550,1524,1551,1552,1525],"file system","csv","json","output","static","notebooks\u002Ftutorials\u002Ffs_connector.ipynb",{"title":1555,"path":1556,"stem":1557,"meta":1558},"CSV connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcsv_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F10.csv_connectors",{"date":1559,"thumbnail":1560,"tags":1561,"keywords":1562,"tech_icons":1564},"2023-01-12","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-csv-connectors.png",[1459,1495],[1520,1563,1524,1551,1552,1525],"CSV",[1565],"mdi:file-csv",{"title":1567,"path":1568,"stem":1569,"meta":1570},"Sending alerts to Slack","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fslack_send_alerts","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F100.slack_send_alerts",{"date":1571,"tags":1572,"keywords":1573,"tech_icons":1576},"2024-02-16",[1459,1495],[1520,1574,1575,1551,1525],"Slack","alerts",[1577],"mdi:slack",{"title":1579,"path":1580,"stem":1581,"meta":1582},"Airbyte connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fairbyte-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F110.airbyte-connectors",{"tags":1583,"keywords":1584},[1459,1495],[1520,1585,1586,1524,1552,1525],"Airbyte","cloud",{"title":1588,"path":1589,"stem":1590,"meta":1591},"Using Pathway Debezium Connector for MongoDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fmongodb-debezium","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F115.mongodb-debezium",{"date":1592,"tags":1593,"keywords":1594,"tech_icons":1602,"deployment_tag":1604,"docker_github_link":1605,"hideInConnectorList":1375},"2024-10-30",[1459,1495],[1520,1595,1596,1597,1598,1599,1600,1601,1524,1551,1525],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[1603],"material-symbols-light:database",[899],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-mongodb-example",{"title":1607,"path":1608,"stem":1609,"meta":1610},"JSON Lines connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fjsonlines-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F15.jsonlines-connector",{"date":1611,"tags":1612,"keywords":1613,"tech_icons":1615},"2024-02-20",[1459,1495],[1520,1614,202,1524,1551,1552,1525],"JSON Lines",[1616],"lets-icons:json",{"title":1618,"path":1619,"stem":1620,"meta":1621},"Database connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fdatabase-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F20.database-connectors",{"date":1622,"thumbnail":1623,"tags":1624,"keywords":1625,"tech_icons":1627,"deployment_tag":1628,"docker_github_link":1629},"2023-01-19","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-database-connectors.png",[1459,1495],[1520,1595,1626,1597,1598,1599,1600,1601,1524,1551,1525],"PostgreSQL",[1603],[899],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-postgres-example",{"title":1631,"path":1632,"stem":1633,"meta":1634},"Connecting Pathway to NeonDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fneondb-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F23.neondb-connector",{"date":1635,"tags":1636,"keywords":1637,"tech_icons":1643,"hideInConnectorList":1375},"2026-06-03",[1459,1495],[1520,1595,1638,1639,1626,1640,1597,1641,1642,1524,1551,1525],"NeonDB","Neon","serverless","logical replication","SSL",[1603],{"title":1645,"path":1646,"stem":1647,"meta":1648},"Custom Python connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcustom-python-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.custom-python-connectors",{"date":1649,"thumbnail":1492,"tags":1650,"keywords":1651},"2023-04-13",[1459,1495],[1520,1523,1524,1525],{"title":1653,"path":1654,"stem":1655,"meta":1656},"Kafka connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fkafka_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.kafka_connectors",{"date":1657,"thumbnail":1658,"tags":1659,"tech_icons":1660,"deployment_tag":1662,"keywords":1663},"2023-01-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-kafka-connectors.png",[1459,1495],[1661],"mdi:apache-kafka",[899],[1520,1599,1601,1524,1551,1525],{"title":1665,"path":1666,"stem":1667,"meta":1668},"NATS connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fnats-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F33.nats-connectors",{"date":1669,"tags":1670,"deployment_tag":1671,"keywords":1672},"2024-12-06",[1459,1495],[899],[1520,1673,1601,1524,1551,1525],"NATS",{"title":1675,"path":1676,"stem":1677,"meta":1678},"Python output connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fpython-output-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F35.python-output-connectors",{"date":1679,"thumbnail":1680,"tags":1681,"keywords":1682},"2023-08-31","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-output-connector.png",[1459,1495],[1520,1523,1551,1525],{"title":1684,"path":1685,"stem":1686,"meta":1687},"Google Drive connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fgdrive-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F70.gdrive-connector",{"date":1688,"thumbnail":1689,"tags":1690,"keywords":1691,"tech_icons":1693},"2023-12-14","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-gdrive-connector.png",[1459,1495],[1520,1692,1586,1524,1552,1525],"Google Drive",[1694],"simple-icons:googledrive",{"title":1696,"path":1697,"stem":1698,"meta":1699},"Switching from Kafka to Redpanda","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fswitching-to-redpanda","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F80.switching-to-redpanda",{"date":1700,"thumbnail":1701,"tags":1702,"keywords":1703,"deployment_tag":1705,"tech_icons":1706,"docker_github_link":1707,"hideInConnectorList":1375},"2023-03-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fredpanda\u002Fth-Kafka_vs_Redpanda.png",[1459,1495],[1520,1704,1599,1600,1601,1524,1551,1525],"Redpanda",[899],[1661],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fbest-movies-example\u002Fredpanda-version",{"title":1709,"path":1710,"stem":1711,"meta":1712},"Custom WebSockets connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fwebsockets-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F90.websockets-connectors",{"date":1713,"tags":1714,"keywords":1715,"tech_icons":1717},"2023-01-24",[1459,1495],[1520,1716,1523,1524,1551,1525],"WebSockets",[1528],{"title":1719,"meta":1720,"path":1721,"stem":1722,"children":1723,"page":1404},"Transform",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation","2.developers\u002F4.user-guide\u002F30.data-transformation",[1724,1729,1743,1749,1755,1768,1784,1805,1821,1826],{"title":1725,"path":1726,"stem":1727,"meta":1728},"Table Operations Overview","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Ftable-operations","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F10.table-operations",{},{"title":1730,"path":1731,"stem":1732,"meta":1733},"Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fasynchronous-transformations","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F100.asynchronous-transformations",{"date":1611,"thumbnail":889,"tags":1734,"keywords":1736,"notebook_export_path":1742},[1459,1735],"engineering",[973,1737,1738,1739,1740,1741],"function","asynchronous","transformation","query","AsyncTransformer","notebooks\u002Ftutorials\u002Fasynctransformer.ipynb",{"title":1744,"path":1745,"stem":1746,"meta":1747},"Simple Join","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fjoin-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F20.join-manual",{"notebook_export_path":1748},"notebooks\u002Ftutorials\u002Fjoin_manual.ipynb",{"title":1750,"path":1751,"stem":1752,"meta":1753},"Groupby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fgroupby-reduce-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F30.groupby-reduce-manual",{"notebook_export_path":1754},"notebooks\u002Ftutorials\u002Fgroupby_reduce_manual.ipynb",{"title":1756,"path":1757,"stem":1758,"meta":1759},"Writing Stateful Reducers","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fcustom-reducers","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F40.custom-reducers",{"date":1760,"thumbnail":1503,"tags":1761,"keywords":1762,"notebook_export_path":1767},"2024-01-17",[1459],[1763,1764,1765,1766],"reducers","aggregate","sumofsquares","median","notebooks\u002Ftutorials\u002Fcustom_reducers.ipynb",{"title":1769,"path":1770,"stem":1771,"meta":1772},"Iterative Computations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fiterate","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F50.iterate",{"date":1773,"thumbnail":889,"tags":1774,"keywords":1775,"notebook_export_path":1783},"2023-12-28",[1459,1735],[1776,1777,1778,1779,1780,1781,1782],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks\u002Ftutorials\u002Fiterate.ipynb",{"title":1785,"path":1786,"stem":1787,"children":1788,"meta":1802},"Indexes in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexes-in-pathway","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F60.indexes-in-pathway",[1789],{"title":1785,"path":1786,"stem":1787,"meta":1790},{"date":1791,"thumbnail":1792,"tags":1793,"keywords":1794,"notebook_export_path":1801},"2023-11-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-computing-pagerank.png",[1459,1735],[1795,1796,1797,1798,1799,1800],"index","indexing","join","asof join","asof_now","KNN","notebooks\u002Ftutorials\u002Findexes.ipynb",{"date":1791,"thumbnail":1792,"tags":1803,"keywords":1804,"notebook_export_path":1801},[1459,1735],[1795,1796,1797,1798,1799,1800],{"title":1806,"path":1807,"stem":1808,"children":1809,"meta":1818},"Indexing from 'groupby' and Single-row Tables","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexing-grouped-tables","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F70.indexing-grouped-tables",[1810],{"title":1806,"path":1807,"stem":1808,"meta":1811},{"date":1812,"thumbnail":1792,"tags":1813,"keywords":1814},"2023-03-31",[1459,71],[1815,1816,1817],"groupby","ix_ref","single-row table",{"date":1812,"thumbnail":1792,"tags":1819,"keywords":1820},[1459,71],[1815,1816,1817],{"title":1822,"path":1823,"stem":1824,"meta":1825},"SQL API","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fsql","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F80.sql",{"redirection":1375},{"title":1827,"path":1828,"stem":1829,"meta":1830},"User-defined Functions","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fuser-defined-functions","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F90.user-defined-functions",{"date":1831,"thumbnail":889,"tags":1832,"keywords":1833,"notebook_export_path":1838},"2024-02-21",[1459,1735],[973,1834,1737,1835,1739,1836,1837],"udf","apply","cache","timeout","notebooks\u002Ftutorials\u002Fudf.ipynb",{"title":1840,"path":1841,"stem":1842,"children":1843,"page":1404},"Temporal Data","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data","2.developers\u002F4.user-guide\u002F40.temporal-data",[1844,1850,1855,1870,1882,1894,1908],{"title":1845,"path":1846,"stem":1847,"meta":1848},"Windowby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows-manual","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F10.windows-manual",{"notebook_export_path":1849},"notebooks\u002Ftutorials\u002Fwindowby_manual.ipynb",{"title":1851,"path":1852,"stem":1853,"meta":1854},"Late Data and Cutoffs","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fbehaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F20.behaviors",{},{"title":1856,"path":1857,"stem":1858,"meta":1859},"Controlling Temporal Behavior of Windows","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows_with_behaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F30.windows_with_behaviors",{"date":1860,"thumbnail":1861,"keywords":1862,"notebook_export_path":1869},"2024-01-08","assets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[1863,1864,1865,1866,1867,1868],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks\u002Ftutorials\u002Fwindows_temporal_behavior.ipynb",{"title":1871,"path":1872,"stem":1873,"meta":1874},"ASOF Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fasof-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F40.asof-join",{"date":1875,"thumbnail":1876,"tags":1877,"keywords":1878,"notebook_export_path":1881},"2023-05-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Ffinance_ts_asof_join\u002Fasof-join-tutorial-th.png",[1459,1735],[1798,1879,1880],"stock prices","financial data analysis","notebooks\u002Ftutorials\u002Fasof_join.ipynb",{"title":1883,"path":1884,"stem":1885,"meta":1886},"Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Finterval-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F50.interval-join",{"date":1887,"thumbnail":1888,"tags":1889,"keywords":1890,"notebook_export_path":1893},"2023-05-22","assets\u002Fcontent\u002Ftutorials\u002Ffleet_eta_interval_join\u002Ffleet-eta-interval-join-th.png",[1459,1735],[1891,1892],"interval join","ETA","notebooks\u002Ftutorials\u002Finterval_join.ipynb",{"title":1895,"path":1896,"stem":1897,"meta":1898},"Window Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindow-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F60.window-join",{"date":1899,"thumbnail":1900,"tags":1901,"keywords":1902,"notebook_export_path":1907},"2023-06-14","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[1459,1735],[1903,1904,1905,1906],"window","behavior analysis","clickstream","conversion rate","notebooks\u002Ftutorials\u002Fwindow_join.ipynb",{"title":1909,"path":1910,"stem":1911,"meta":1912},"Controlling Temporal Behavior of Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Ftemporal_behavior","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F70.temporal_behavior",{"date":1913,"thumbnail":1888,"tags":1914,"keywords":1915,"notebook_export_path":1916},"2023-11-28",[1459,1735],[1891,1864,1865,1866,1867,1868],"notebooks\u002Ftutorials\u002Finterval_join_temporal_behavior.ipynb",{"title":1918,"meta":1919,"path":1920,"stem":1921,"children":1922,"page":1404},"LLM tooling",{},"\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack","2.developers\u002F4.user-guide\u002F50.llm-xpack",[1923,1935,1944,1953,1968,1979,1991,2003,2013,2023,2033],{"title":1924,"path":1925,"stem":1926,"meta":1927},"Introduction to the LLM xpack","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Foverview","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F10.overview",{"date":1928,"thumbnail":889,"tags":1929,"keywords":1931},"2024-02-14",[1459,1930],"LLM",[1930,1932,1933,1934],"GPT","OpenAI","Gemini",{"title":1936,"path":1937,"stem":1938,"meta":1939},"Create your own RAG","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-app-pathway","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F20.llm-app-pathway",{"date":1940,"thumbnail":889,"tags":1941,"keywords":1943},"2025-03-28",[1459,1930,1942],"RAG",[1930,1932,1933,1796],{"title":1945,"path":1946,"stem":1947,"meta":1948},"Pathway Live Data Framework as a Vector Store","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fpathway-vector-store","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F25.pathway-vector-store",{"date":1949,"thumbnail":889,"tags":1950,"keywords":1951},"2025-05-07",[1459,1930,1942],[1930,1932,1933,1796,1952],"Vector Store",{"title":1954,"path":1955,"stem":1956,"children":1957,"meta":1965},"Document Indexing","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fdocs-indexing","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F30.docs-indexing",[1958],{"title":1954,"path":1955,"stem":1956,"meta":1959},{"date":1960,"thumbnail":889,"tags":1961,"keywords":1964},"2025-01-13",[1459,1796,1962,1963],"document storage","retrieval",[1930,1932,1933,1934],{"date":1960,"thumbnail":889,"tags":1966,"keywords":1967},[1459,1796,1962,1963],[1930,1932,1933,1934],{"title":1969,"path":1970,"stem":1971,"meta":1972},"Pathway Live Data Framework MCP Server","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fpathway_mcp_server","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F40.pathway_mcp_server",{"date":1973,"thumbnail":889,"tags":1974,"keywords":1975},"2025-08-01",[1459,1735],[1976,1977,1374,1978],"MCP","MCP server","protocol",{"title":1980,"path":1981,"stem":1982,"meta":1983},"Claude Desktop","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fpathway-mcp-claude-desktop","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F41.pathway-mcp-claude-desktop",{"date":1984,"thumbnail":889,"tags":1985,"keywords":1987},"2025-08-19",[1459,1735,1986],"claude",[1976,1980,1988,1989,1990],"real-time data","document store","statistics",{"title":1992,"path":1993,"stem":1994,"meta":1995},"Parsers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fparsers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F50.parsers",{"date":1996,"tags":1997,"keywords":1998},"2024-06-04",[1459,1930],[1930,1999,2000,2001,2002],"unstructured","docling","parsers","ocr",{"title":2004,"path":2005,"stem":2006,"meta":2007},"Chunking text","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fsplitters","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F60.splitters",{"date":2008,"thumbnail":889,"tags":2009,"keywords":2012},"2025-02-04",[2010,2011],"splitters","chunking",[2001,2011],{"title":2014,"path":2015,"stem":2016,"meta":2017},"Embedders","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fembedders","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F70.embedders",{"date":2008,"thumbnail":889,"tags":2018,"keywords":2020},[1459,2019],"embedder",[1930,1932,1933,1934,2021,2022],"LiteLLM","Embedder",{"title":2024,"path":2025,"stem":2026,"meta":2027},"LLM Chats","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-chats","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F80.llm-chats",{"date":2028,"thumbnail":889,"tags":2029,"keywords":2031},"2025-01-30",[1459,1930,2030,2024],"LLM Wrappers",[1930,1932,1933,1934,2021,2032],"Wrapper",{"title":2034,"path":2035,"stem":2036,"meta":2037},"Rerankers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Frerankers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F90.rerankers",{"date":2008,"thumbnail":889,"tags":2038,"keywords":2040},[1459,2039],"reranker",[1930,2041],"Reranker",{"title":2043,"meta":2044,"path":2045,"stem":2046,"children":2047,"page":1404},"Deploy",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdeployment","2.developers\u002F4.user-guide\u002F60.deployment",[2048,2053,2058,2075,2091,2096,2101,2106,2113,2118,2123,2136,2148,2153,2164],{"title":2049,"path":2050,"stem":2051,"meta":2052},"Cloud Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fcloud-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F10.cloud-deployment",{},{"title":2054,"path":2055,"stem":2056,"meta":2057},"Deploy to GCP","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fgcp-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F15.gcp-deploy",{},{"title":2059,"path":2060,"stem":2061,"meta":2062},"Deploy to AWS Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Faws-fargate-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F20.aws-fargate-deploy",{"date":2063,"tags":2064,"thumbnail":2067,"keywords":2069,"docker_github_link":2074,"deployButtons":1404},"2024-08-16",[2065,2066],"showcase","data-pipeline",{"src":2068},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Faws\u002Faws-fargate-overview-th.png",[2070,2071,2072,1601,2073],"AWS","Fargate","cloud deployment","AWS Fargate","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Faws-fargate-deploy",{"title":2076,"path":2077,"stem":2078,"meta":2079},"Deploy to Azure","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fazure-aci-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F25.azure-aci-deploy",{"date":2080,"tags":2081,"thumbnail":2082,"keywords":2084,"docker_github_link":2090,"deployButtons":1404},"2024-11-20",[2065,2066],{"src":2083,"contain":1375},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fazure\u002Fazure-aci-overview-th.png",[2085,2086,2072,1601,2087,2088,2089],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fazure-aci-deploy",{"title":2092,"path":2093,"stem":2094,"meta":2095},"Deploy with Render","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Frender-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F30.render-deploy",{},{"title":2097,"path":2098,"stem":2099,"meta":2100},"Deploy to Nebius AI Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fnebius-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F32.nebius-deploy",{},{"title":2102,"path":2103,"stem":2104,"meta":2105},"Notebook-to-Docker Conversion","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fjupyter-docker","2.developers\u002F4.user-guide\u002F60.deployment\u002F35.jupyter-docker",{},{"title":2107,"path":2108,"stem":2109,"meta":2110},"Tutorial: From Jupyter to Deploy","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Ffrom-jupyter-to-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F40.from-jupyter-to-deploy",{"date":2111,"project_github_link":2112},"2023-11-29","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy",{"title":2114,"path":2115,"stem":2116,"meta":2117},"CI\u002FCD","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fintegration","2.developers\u002F4.user-guide\u002F60.deployment\u002F45.integration",{},{"title":2119,"path":2120,"stem":2121,"meta":2122},"Docker Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fdocker-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F5.docker-deployment",{},{"title":2124,"path":2125,"stem":2126,"meta":2127},"Monitoring a Pathway Live Data Framework Instance","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpathway-monitoring","2.developers\u002F4.user-guide\u002F60.deployment\u002F50.pathway-monitoring",{"date":2128,"thumbnail":2129,"tags":2130,"keywords":2131},"2024-05-27","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-prometheus.png",[1459,1735],[2132,2133,2134,2135],"monitoring","OpenTelemetry","Grafana","metrics",{"title":2137,"path":2138,"stem":2139,"meta":2140},"Pathway Live Data Framework Web Dashboard","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fweb-dashboard","2.developers\u002F4.user-guide\u002F60.deployment\u002F52.web-dashboard",{"date":2141,"tags":2142,"keywords":2143},"2026-01-13",[1459,1735],[2144,2145,2132,2146,2147,2135],"Web Dashboard","UI","graph","charts",{"title":2149,"path":2150,"stem":2151,"meta":2152},"Persistence in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence","2.developers\u002F4.user-guide\u002F60.deployment\u002F55.persistence",{},{"title":2154,"path":2155,"stem":2156,"meta":2157},"Persistence in Pathway Live Data Framework: How to Resume the Interrupted Computation","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_recovery","2.developers\u002F4.user-guide\u002F60.deployment\u002F60.persistence_recovery",{"date":2158,"thumbnail":889,"tags":2159,"keywords":2161},"2023-11-02",[1459,1735,2160],"dataflow management",[2162,2163],"persistence","recovery",{"title":2165,"path":2166,"stem":2167,"meta":2168},"Persistence in Pathway Live Data Framework: How to Add New Data without Full Computation Restart","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_restart_with_new_data","2.developers\u002F4.user-guide\u002F60.deployment\u002F65.persistence_restart_with_new_data",{"date":2169,"thumbnail":889,"tags":2170,"keywords":2171},"2023-11-14",[1459,1735,2160],[2162,2172,2173],"optimization","restart",{"title":2175,"path":2176,"stem":2177,"children":2178,"page":1404},"Migrating","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating","2.developers\u002F4.user-guide\u002F70.migrating",[2179,2185],{"title":2180,"path":2181,"stem":2182,"meta":2183},"Coming from Pandas","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fmigrate-from-pandas","2.developers\u002F4.user-guide\u002F70.migrating\u002F10.migrate-from-pandas",{"notebook_export_path":2184},"notebooks\u002Ftutorials\u002Ffrom_pandas.ipynb",{"title":2186,"path":2187,"stem":2188,"meta":2189},"Pandas Cheat Sheet","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fpandas-cheat-sheet","2.developers\u002F4.user-guide\u002F70.migrating\u002F20.pandas-cheat-sheet",{},{"title":2191,"path":2192,"stem":2193,"children":2194,"page":1404},"Advanced","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced","2.developers\u002F4.user-guide\u002F80.advanced",[2195,2200,2210,2216,2229,2234,2239,2244],{"title":2196,"path":2197,"stem":2198,"meta":2199},"Architecture","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker-architecture","2.developers\u002F4.user-guide\u002F80.advanced\u002F10.worker-architecture",{},{"title":2201,"path":2202,"stem":2203,"meta":2204},"Setting up Cache in Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Ffunction_calls_caching","2.developers\u002F4.user-guide\u002F80.advanced\u002F20.function_calls_caching",{"date":2205,"thumbnail":889,"tags":2206,"keywords":2207},"2023-11-30",[1459,1735,2160],[2162,2172,2208,2209],"async_transformer","caching",{"title":2211,"path":2212,"stem":2213,"meta":2214},"Data Model Consistency","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fconsistency","2.developers\u002F4.user-guide\u002F80.advanced\u002F30.consistency",{"notebook_export_path":2215},"notebooks\u002Ftutorials\u002Fconsistency.ipynb",{"title":2217,"path":2218,"stem":2219,"meta":2220},"Writing declarative over imperative pipelines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fdeclarative_vs_imperative","2.developers\u002F4.user-guide\u002F80.advanced\u002F40.declarative_vs_imperative",{"date":2221,"thumbnail":889,"tags":2222,"keywords":2223,"notebook_export_path":2228},"2025-11-25",[1459,1735],[2224,2225,2226,2227,1776],"declarative","imperative","ordered","splitting","notebooks\u002Ftutorials\u002Fdeclarative_vs_imperative.ipynb",{"title":2230,"path":2231,"stem":2232,"meta":2233},"Best Practices","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fbest-practices","2.developers\u002F4.user-guide\u002F80.advanced\u002F5.best-practices",{},{"title":2235,"path":2236,"stem":2237,"meta":2238},"How Pathway Live Data Framework Connectors Work","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fhow_pathway_connectors_work","2.developers\u002F4.user-guide\u002F80.advanced\u002F50.how_pathway_connectors_work",{},{"title":2240,"path":2241,"stem":2242,"meta":2243},"Dynamic Worker Scaling","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker_count_scaling","2.developers\u002F4.user-guide\u002F80.advanced\u002F60.worker_count_scaling",{},{"title":2245,"path":2246,"stem":2247,"meta":2248},"Running on Multiple Machines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Frunning_on_multiple_machines","2.developers\u002F4.user-guide\u002F80.advanced\u002F70.running_on_multiple_machines",{},{"title":2250,"meta":2251,"path":2252,"stem":2253,"children":2254,"page":1404},"Help And Updates",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment","2.developers\u002F4.user-guide\u002F90.development",[2255,2260,2265],{"title":2256,"path":2257,"stem":2258,"meta":2259},"Troubleshooting","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Ftroubleshooting","2.developers\u002F4.user-guide\u002F90.development\u002F10.troubleshooting",{},{"title":2261,"path":2262,"stem":2263,"meta":2264},"Changelog","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fchangelog","2.developers\u002F4.user-guide\u002F90.development\u002F20.changelog",{"toc":1404},{"title":2266,"path":2267,"stem":2268,"meta":2269},"Get help","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fget-help","2.developers\u002F4.user-guide\u002F90.development\u002F30.get-help",{},{"title":2271,"meta":2272,"path":2273,"stem":2274,"children":2275,"page":1404},"API docs",{},"\u002Fdevelopers\u002Fapi-docs","2.developers\u002F5.API-docs",[2276,2281,2286,2292,2297,2302,2307,2375,2380,2385,2390,2398,2583,2588],{"title":2277,"path":2278,"stem":2279,"meta":2280},"Live Data Framework API","\u002Fdevelopers\u002Fapi-docs\u002Fpathway","2.developers\u002F5.API-docs\u002F1.pathway",{"sidebar":1374},{"title":2282,"path":2283,"stem":2284,"meta":2285},"pw.reducers","\u002Fdevelopers\u002Fapi-docs\u002Freducers","2.developers\u002F5.API-docs\u002F10.reducers",{"sidebar":1374},{"title":2287,"path":2288,"stem":2289,"meta":2290},"pw.sql","\u002Fdevelopers\u002Fapi-docs\u002Fsql-api","2.developers\u002F5.API-docs\u002F11.SQL-API",{"notebook_export_path":2291},"notebooks\u002Ftutorials\u002Fsql_api.ipynb",{"title":2293,"path":2294,"stem":2295,"meta":2296},"pw.temporal","\u002Fdevelopers\u002Fapi-docs\u002Ftemporal","2.developers\u002F5.API-docs\u002F12.temporal",{"sidebar":1374},{"title":2298,"path":2299,"stem":2300,"meta":2301},"pw.udfs","\u002Fdevelopers\u002Fapi-docs\u002Fudfs","2.developers\u002F5.API-docs\u002F13.udfs",{"sidebar":1374},{"title":2303,"path":2304,"stem":2305,"meta":2306},"pw.xpacks.connectors","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-sharepoint","2.developers\u002F5.API-docs\u002F14.pathway-xpacks-sharepoint",{"sidebar":1374},{"title":2308,"path":2309,"stem":2310,"children":2311,"meta":2374},"pw.xpacks.llm","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002Findex",[2312,2314,2319,2324,2329,2334,2339,2344,2349,2354,2359,2364,2369],{"title":2308,"path":2309,"stem":2310,"meta":2313},{"sidebar":1374},{"title":2315,"path":2316,"stem":2317,"meta":2318},"pw.xpacks.llm.llms","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fllms","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F1.llms",{"sidebar":1374},{"title":2320,"path":2321,"stem":2322,"meta":2323},"pw.xpacks.llm.servers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fservers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F10.servers",{"sidebar":1374},{"title":2325,"path":2326,"stem":2327,"meta":2328},"pw.xpacks.llm.utils","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Futils","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F11.utils",{"sidebar":1374},{"title":2330,"path":2331,"stem":2332,"meta":2333},"pw.xpacks.llm.mcp_server","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fmcp_server","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F12.mcp_server",{"sidebar":1374},{"title":2335,"path":2336,"stem":2337,"meta":2338},"pw.xpacks.llm.embedders","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fembedders","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F2.embedders",{"sidebar":1374},{"title":2340,"path":2341,"stem":2342,"meta":2343},"pw.xpacks.llm.parsers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fparsers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F3.parsers",{"sidebar":1374},{"title":2345,"path":2346,"stem":2347,"meta":2348},"pw.xpacks.llm.splitters","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fsplitters","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F4.splitters",{"sidebar":1374},{"title":2350,"path":2351,"stem":2352,"meta":2353},"pw.xpacks.llm.vector_store","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fvectorstore","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F5.vectorstore",{"sidebar":1374},{"title":2355,"path":2356,"stem":2357,"meta":2358},"pw.xpacks.llm.document_store","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fdocument_store","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F6.document_store",{"sidebar":1374},{"title":2360,"path":2361,"stem":2362,"meta":2363},"pw.xpacks.llm.question_answering","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fquestion_answering","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F7.question_answering",{"sidebar":1374},{"title":2365,"path":2366,"stem":2367,"meta":2368},"pw.xpacks.llm.prompts","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fprompts","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F8.prompts",{"sidebar":1374},{"title":2370,"path":2371,"stem":2372,"meta":2373},"pw.xpacks.llm.rerankers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Frerankers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F9.rerankers",{"sidebar":1374},{"sidebar":1374},{"title":2376,"path":2377,"stem":2378,"meta":2379},"pw.Table","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-table","2.developers\u002F5.API-docs\u002F2.pathway-table",{"sidebar":1374},{"title":2381,"path":2382,"stem":2383,"meta":2384},"pw.debug","\u002Fdevelopers\u002Fapi-docs\u002Fdebug","2.developers\u002F5.API-docs\u002F4.debug",{"sidebar":1374},{"title":2386,"path":2387,"stem":2388,"meta":2389},"pw.demo","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-demo","2.developers\u002F5.API-docs\u002F5.pathway-demo",{"sidebar":1374},{"title":2391,"path":2392,"stem":2393,"children":2394,"meta":2397},"pw.indexing","\u002Fdevelopers\u002Fapi-docs\u002Findexing","2.developers\u002F5.API-docs\u002F6.indexing",[2395],{"title":2391,"path":2392,"stem":2393,"meta":2396},{"sidebar":1374},{"sidebar":1374},{"title":2399,"path":2400,"stem":2401,"children":2402,"meta":2582},"pw.io","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io","2.developers\u002F5.API-docs\u002F7.pathway-io\u002Findex",[2403,2405,2410,2415,2417,2422,2427,2432,2437,2442,2447,2452,2457,2462,2467,2472,2477,2482,2487,2492,2497,2502,2507,2512,2517,2522,2527,2532,2537,2542,2547,2552,2557,2562,2567,2572,2577],{"title":2399,"path":2400,"stem":2401,"meta":2404},{"sidebar":1374},{"title":2406,"path":2407,"stem":2408,"meta":2409},"pw.io.airbyte","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fairbyte","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F110.airbyte",{"sidebar":1374},{"title":2411,"path":2412,"stem":2413,"meta":2414},"pw.io.bigquery","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fbigquery","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F120.bigquery",{"sidebar":1374},{"title":5,"path":1376,"stem":1379,"meta":2416},{"sidebar":1374},{"title":2418,"path":2419,"stem":2420,"meta":2421},"pw.io.csv","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fcsv","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F140.csv",{"sidebar":1374},{"title":2423,"path":2424,"stem":2425,"meta":2426},"pw.io.debezium","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdebezium","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F150.debezium",{"sidebar":1374},{"title":2428,"path":2429,"stem":2430,"meta":2431},"pw.io.deltalake","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdeltalake","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F160.deltalake",{"sidebar":1374},{"title":2433,"path":2434,"stem":2435,"meta":2436},"pw.io.dynamodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdynamodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F170.dynamodb",{"sidebar":1374},{"title":2438,"path":2439,"stem":2440,"meta":2441},"pw.io.elasticsearch","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Felasticsearch","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F180.elasticsearch",{"sidebar":1374},{"title":2443,"path":2444,"stem":2445,"meta":2446},"pw.io.fs","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ffs","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F190.fs",{"sidebar":1374},{"title":2448,"path":2449,"stem":2450,"meta":2451},"pw.io.gdrive","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fgdrive","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F200.gdrive",{"sidebar":1374},{"title":2453,"path":2454,"stem":2455,"meta":2456},"pw.io.http","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fhttp","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F210.http",{"sidebar":1374},{"title":2458,"path":2459,"stem":2460,"meta":2461},"pw.io.iceberg","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ficeberg","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F220.iceberg",{"sidebar":1374},{"title":2463,"path":2464,"stem":2465,"meta":2466},"pw.io.jsonlines","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fjsonlines","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F230.jsonlines",{"sidebar":1374},{"title":2468,"path":2469,"stem":2470,"meta":2471},"pw.io.kafka","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkafka","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F240.kafka",{"sidebar":1374},{"title":2473,"path":2474,"stem":2475,"meta":2476},"pw.io.kinesis","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkinesis","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F250.kinesis",{"sidebar":1374},{"title":2478,"path":2479,"stem":2480,"meta":2481},"pw.io.leann","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fleann","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F260.leann",{"sidebar":1374},{"title":2483,"path":2484,"stem":2485,"meta":2486},"pw.io.logstash","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Flogstash","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F270.logstash",{"sidebar":1374},{"title":2488,"path":2489,"stem":2490,"meta":2491},"pw.io.milvus","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmilvus","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F280.milvus",{"sidebar":1374},{"title":2493,"path":2494,"stem":2495,"meta":2496},"pw.io.minio","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fminio","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F290.minio",{"sidebar":1374},{"title":2498,"path":2499,"stem":2500,"meta":2501},"pw.io.mongodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmongodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F300.mongodb",{"sidebar":1374},{"title":2503,"path":2504,"stem":2505,"meta":2506},"pw.io.mqtt","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmqtt","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F310.mqtt",{"sidebar":1374},{"title":2508,"path":2509,"stem":2510,"meta":2511},"pw.io.mssql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmssql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F320.mssql",{"sidebar":1374},{"title":2513,"path":2514,"stem":2515,"meta":2516},"pw.io.mysql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmysql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F330.mysql",{"sidebar":1374},{"title":2518,"path":2519,"stem":2520,"meta":2521},"pw.io.nats","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnats","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F340.nats",{"sidebar":1374},{"title":2523,"path":2524,"stem":2525,"meta":2526},"pw.io.null","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnull","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F350.null",{"sidebar":1374},{"title":2528,"path":2529,"stem":2530,"meta":2531},"pw.io.plaintext","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fplaintext","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F360.plaintext",{"sidebar":1374},{"title":2533,"path":2534,"stem":2535,"meta":2536},"pw.io.postgres","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpostgres","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F370.postgres",{"sidebar":1374},{"title":2538,"path":2539,"stem":2540,"meta":2541},"pw.io.pubsub","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpubsub","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F380.pubsub",{"sidebar":1374},{"title":2543,"path":2544,"stem":2545,"meta":2546},"pw.io.pyfilesystem","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpyfilesystem","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F390.pyfilesystem",{"sidebar":1374},{"title":2548,"path":2549,"stem":2550,"meta":2551},"pw.io.python","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpython","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F400.python",{"sidebar":1374},{"title":2553,"path":2554,"stem":2555,"meta":2556},"pw.io.questdb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fquestdb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F410.questdb",{"sidebar":1374},{"title":2558,"path":2559,"stem":2560,"meta":2561},"pw.io.rabbitmq","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Frabbitmq","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F420.rabbitmq",{"sidebar":1374},{"title":2563,"path":2564,"stem":2565,"meta":2566},"pw.io.redpanda","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fredpanda","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F430.redpanda",{"sidebar":1374},{"title":2568,"path":2569,"stem":2570,"meta":2571},"pw.io.s3","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fs3","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F440.s3",{"sidebar":1374},{"title":2573,"path":2574,"stem":2575,"meta":2576},"pw.io.slack","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fslack","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F450.slack",{"sidebar":1374},{"title":2578,"path":2579,"stem":2580,"meta":2581},"pw.io.sqlite","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fsqlite","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F460.sqlite",{"sidebar":1374},{"sidebar":1374},{"title":2584,"path":2585,"stem":2586,"meta":2587},"pw.ml","\u002Fdevelopers\u002Fapi-docs\u002Fml","2.developers\u002F5.API-docs\u002F8.ML",{"sidebar":1374},{"title":2589,"path":2590,"stem":2591,"meta":2592},"pw.persistence","\u002Fdevelopers\u002Fapi-docs\u002Fpersistence-api","2.developers\u002F5.API-docs\u002F9.persistence-api",{"sidebar":1374},{"title":2594,"path":2595,"stem":2596,"children":2597,"meta":3339},"Pathway Live Data Framework Templates","\u002Fdevelopers\u002Ftemplates","2.developers\u002F7.templates\u002F1.index",[2598,2600,2605,2610,2615,2619,2640,2679,2705,3137],{"title":2594,"path":2595,"stem":2596,"meta":2599},{"navTitle":1400,"layout":1474,"aside":1375,"toc":1404,"single":1375},{"title":2601,"path":2602,"stem":2603,"meta":2604},"Run a template","\u002Fdevelopers\u002Ftemplates\u002Frun-a-template","2.developers\u002F7.templates\u002F20.run-a-template",{"heading":1404,"toc":1404},{"title":2606,"path":2607,"stem":2608,"meta":2609},"Customizing a RAG Template with YAML","\u002Fdevelopers\u002Ftemplates\u002Fconfigure-yaml","2.developers\u002F7.templates\u002F30.configure-yaml",{"heading":1404},{"title":2611,"path":2612,"stem":2613,"meta":2614},"How to Use Your Own Components in YAML Configuration","\u002Fdevelopers\u002Ftemplates\u002Fcustom-components","2.developers\u002F7.templates\u002F35.custom-components",{"heading":1404},{"title":1431,"path":2616,"stem":2617,"meta":2618},"\u002Fdevelopers\u002Ftemplates\u002Flicensing-guide","2.developers\u002F7.templates\u002F38.licensing-guide",{"heading":1404,"toc":1404},{"title":2620,"meta":2621,"path":2622,"stem":2623,"children":2624,"page":1404},"YAML Snippets",{},"\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets","2.developers\u002F7.templates\u002F39.yaml-snippets",[2625,2630,2635],{"title":2626,"path":2627,"stem":2628,"meta":2629},"Data Sources Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Fdata-sources-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F10.data-sources-examples",{"heading":1404,"toc":1375},{"title":2631,"path":2632,"stem":2633,"meta":2634},"RAG configuration Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Frag-configuration-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F20.rag-configuration-examples",{"heading":1404,"toc":1375},{"title":2636,"path":2637,"stem":2638,"meta":2639},"Full Templates Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Ffull-pipelines-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F30.full-pipelines-examples",{"heading":1404,"toc":1375},{"title":2641,"path":2642,"stem":2643,"children":2644,"page":1404},"Rag Customization","\u002Fdevelopers\u002Ftemplates\u002Frag-customization","2.developers\u002F7.templates\u002F40.rag-customization",[2645,2650,2655,2661,2667,2673],{"title":2646,"path":2647,"stem":2648,"meta":2649},"REST API","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Frest-api","2.developers\u002F7.templates\u002F40.rag-customization\u002F10.REST-API",{"heading":1404,"toc":1404},{"title":2651,"path":2652,"stem":2653,"meta":2654},"Customizing prompt","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fcustom-prompt","2.developers\u002F7.templates\u002F40.rag-customization\u002F20.custom-prompt",{"heading":1404},{"title":1992,"path":2656,"stem":2657,"meta":2658},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fparsers","2.developers\u002F7.templates\u002F40.rag-customization\u002F30.parsers",{"date":1996,"tags":2659,"keywords":2660},[1459,1930],[1930,1999,2000,2001,2002],{"title":2004,"path":2662,"stem":2663,"meta":2664},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fsplitters","2.developers\u002F7.templates\u002F40.rag-customization\u002F40.splitters",{"date":2008,"thumbnail":889,"tags":2665,"keywords":2666},[2010,2011],[2001,2011],{"title":2014,"path":2668,"stem":2669,"meta":2670},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fembedders","2.developers\u002F7.templates\u002F40.rag-customization\u002F50.embedders",{"date":2008,"thumbnail":889,"tags":2671,"keywords":2672},[1459,2019],[1930,1932,1933,1934,2021,2022],{"title":2024,"path":2674,"stem":2675,"meta":2676},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fllm-chats","2.developers\u002F7.templates\u002F40.rag-customization\u002F60.llm-chats",{"date":2028,"thumbnail":889,"tags":2677,"keywords":2678},[1459,1930,2030,2024],[1930,1932,1933,1934,2021,2032],{"title":2043,"path":2680,"stem":2681,"children":2682,"page":1404},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy","2.developers\u002F7.templates\u002F60.deploy",[2683,2687,2691,2698],{"title":2049,"path":2684,"stem":2685,"meta":2686},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fcloud-deployment","2.developers\u002F7.templates\u002F60.deploy\u002F10.cloud-deployment",{},{"title":2054,"path":2688,"stem":2689,"meta":2690},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fgcp-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F15.gcp-deploy",{},{"title":2059,"path":2692,"stem":2693,"meta":2694},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Faws-fargate-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F20.aws-fargate-deploy",{"date":2063,"tags":2695,"thumbnail":2696,"keywords":2697,"docker_github_link":2074,"deployButtons":1404},[2065,2066],{"src":2068},[2070,2071,2072,1601,2073],{"title":2076,"path":2699,"stem":2700,"meta":2701},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F25.azure-aci-deploy",{"date":2080,"tags":2702,"thumbnail":2703,"keywords":2704,"docker_github_link":2090,"deployButtons":1404},[2065,2066],{"src":2083,"contain":1375},[2085,2086,2072,1601,2087,2088,2089],{"title":2706,"meta":2707,"path":2708,"stem":2709,"children":2710,"page":1404},"ETL Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Fetl","2.developers\u002F7.templates\u002FETL",[2711,2725,2741,2760,2780,2791,2805,2816,2826,2841,2856,2870,2885,2903,2919,2933,2949,2965,2977,2990,3000,3012,3024,3038],{"title":2712,"path":2713,"stem":2714,"meta":2715},"EL Pipeline: Move your data around with Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fel-pipeline","2.developers\u002F7.templates\u002FETL\u002F10.el-pipeline",{"layout":2716,"date":2717,"tags":2718,"thumbnail":2719,"keywords":2721,"popular":1375},"template","2025-05-22",[2065,2066],{"src":2720,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fel-template\u002Fel-template-thumbnail.png",[2722,2723,2724,1599,1626,1601],"ETL","EL","YAML",{"title":2726,"path":2727,"stem":2728,"meta":2729},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fsuspicious_activity_tumbling_window","2.developers\u002F7.templates\u002FETL\u002F10.suspicious_activity_tumbling_window",{"notebook_export_path":2730,"aside":1375,"date":2731,"thumbnail":2732,"tags":2735,"keywords":2737,"layout":2716},"notebooks\u002Ftutorials\u002Fsuspicious_user_activity.ipynb","2023-05-30",{"src":2733,"provider":2734},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-shield.png","s3",[1459,2736],"machine-learning",[1903,2738,2739,2740],"tumbling","alert","notebook",{"title":2742,"path":2743,"stem":2744,"meta":2745},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fgaussian_filtering_python","2.developers\u002F7.templates\u002FETL\u002F100.gaussian_filtering_python",{"notebook_export_path":2746,"aside":1375,"date":2747,"layout":2716,"thumbnail":2748,"tags":2750,"related":2752,"keywords":2755},"notebooks\u002Ftutorials\u002Fgaussian-filtering-python.ipynb","2023-10-17",{"src":2749},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-gaussian.png",[1459,2751],"Time Series",[2753,2754],"\u002Fblog\u002Fsignal-processing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fupsampling",[2756,2757,1868,2758,2759,1903,2740],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":2761,"path":2762,"stem":2763,"meta":2764},"Computing the Option Greeks using Pathway Live Data Framework and Databento","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F105.option-greeks",{"thumbnail":2765,"date":2767,"tags":2768,"keywords":2769,"notebook_export_path":2778,"docker_github_link":2779,"aside":1375,"layout":2716},{"src":2766,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Foption-greeks\u002Foption-greeks.png","2024-08-06",[1459,2066],[2770,2771,2772,2773,2774,2775,2776,2777,2740],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks\u002Ftutorials\u002Foption-greeks.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Foption-greeks",{"title":2781,"path":2782,"stem":2783,"meta":2784},"Automating reconciliation of messy financial transaction logs using the Pathway Live Data Framework real-time fuzzy join","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter1","2.developers\u002F7.templates\u002FETL\u002F11.fuzzy_join_chapter1",{"notebook_export_path":2785,"aside":1375,"date":2786,"tags":2787,"keywords":2788,"layout":2716},"notebooks\u002Fshowcases\u002Ffuzzy_join_part1.ipynb","2022-10-18",[1459,2066],[2789,2790,1999,2740],"Fuzzy join","reconciliation",{"title":2792,"path":2754,"stem":2793,"meta":2794},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers\u002F7.templates\u002FETL\u002F110.upsampling",{"notebook_export_path":2795,"aside":1375,"date":2796,"layout":2716,"thumbnail":2797,"tags":2799,"related":2800,"popular":1375,"keywords":2801},"notebooks\u002Ftutorials\u002Fupsampling.ipynb","2023-10-18",{"src":2798},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-time-series.png",[1459,2751],[2753,2743],[2756,2802,1868,2803,2804,2759,1903,2740],"upsampling","resampling","interpolation",{"title":2806,"path":2807,"stem":2808,"meta":2809},"Interaction with a Feedback Loop.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter2","2.developers\u002F7.templates\u002FETL\u002F12.fuzzy_join_chapter2",{"notebook_export_path":2810,"aside":1375,"date":2811,"thumbnail":2812,"tags":2814,"keywords":2815,"layout":2716},"notebooks\u002Fshowcases\u002Ffuzzy_join_part2.ipynb","2022-10-19",{"src":2813,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Ffuzzy_join\u002Freconciliation_chapter3_trim.png",[1459,2066],[2789,2790,1999,2740],{"title":2817,"path":2818,"stem":2819,"meta":2820},"Smart real-time monitoring application with alert deduplication","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Falerting-significant-changes","2.developers\u002F7.templates\u002FETL\u002F130.alerting-significant-changes",{"notebook_export_path":2821,"aside":1375,"date":2822,"tags":2823,"keywords":2824,"layout":2716},"notebooks\u002Ftutorials\u002Falert-deduplication.ipynb","2023-11-16",[1459,2066],[2739,2825,2132,2740],"deduplication",{"title":2827,"path":2828,"stem":2829,"meta":2830},"Kafka ETL: Processing event streams in Python","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-etl","2.developers\u002F7.templates\u002FETL\u002F140.kafka-etl",{"layout":2716,"date":2831,"tags":2832,"thumbnail":2833,"keywords":2835,"docker_github_link":2840,"popular":1375},"2024-02-15",[2065,2066],{"src":2834,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002FETL-Kafka\u002FETL-Kafka.png",[2722,1599,2836,2837,2838,2839,1601],"datetime","time zone","timezone","concat_reindex","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-ETL",{"title":2842,"path":2843,"stem":2844,"meta":2845},"Streaming ETL pipelines in Python with Airbyte and Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fetl-python-airbyte","2.developers\u002F7.templates\u002FETL\u002F150.etl-python-airbyte",{"layout":2716,"date":2846,"tags":2847,"thumbnail":2848,"keywords":2850},"2024-02-28",[2065,2066],{"src":2849},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fairbyte\u002Fairbyte-diagram-th.png",[2851,2852,2853,2854,2855],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":2857,"path":2858,"stem":2859,"meta":2860},"Delta Lake ETL with Pathway Live Data Framework for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fdelta_lake_etl","2.developers\u002F7.templates\u002FETL\u002F175.delta_lake_etl",{"layout":2716,"date":2861,"tags":2862,"thumbnail":2863,"keywords":2865,"docker_github_link":2869},"2024-07-23",[2065,2066],{"src":2864,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fdeltalake\u002Fdelta_lake_diagram_th.png",[2866,2867,2868,2854,2855,1601],"delta lake etl","spark delta lake","spark etl","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fspark-data-preparation",{"title":2871,"path":2872,"stem":2873,"meta":2874},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-alternative","2.developers\u002F7.templates\u002FETL\u002F180.kafka-alternative",{"layout":2716,"thumbnail":2875,"date":2877,"tags":2878,"keywords":2879},{"src":2876,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fkafka-alternatives\u002Fkafka-alternatives-thumbnail.png","2024-08-27",[2065,2066],[2722,1599,2880,2881,2882,2838,2883,2884],"Pathway","MinIO","S3","Kafka-alternatives","Delta tables",{"title":2886,"path":2887,"stem":2888,"meta":2889},"Jupyter \u002F Colab: visualizing and transforming live data streams in Python notebooks with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flive_data_jupyter","2.developers\u002F7.templates\u002FETL\u002F2.live_data_jupyter",{"aside":1375,"date":2111,"tags":2890,"keywords":2891,"notebook_export_path":2901,"docker_github_link":2902,"popular":1375,"layout":2716},[1459,2066,2065],[2892,2893,2894,2895,2896,2897,2898,2899,2900,2740,1601],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks\u002Fshowcases\u002Flive-data-jupyter.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy\u002Fpart4_deployment",{"title":2904,"path":2905,"stem":2906,"meta":2907},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F2.twitter",{"aside":1375,"layout":2716,"date":2908,"thumbnail":2909,"tags":2911,"keywords":2912,"docker_github_link":2918},"2022-10-31",{"src":2910},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-twitter.png",[1459,2736,2065],[2913,2914,2915,2916,2917,1999,1601],"Twitter","tweets","sentiment analysis","geolocation","influence","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ftwitter",{"title":2920,"path":2921,"stem":2922,"meta":2923},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fevent_stream_processing_time_between_occurrences","2.developers\u002F7.templates\u002FETL\u002F20.event_stream_processing_time_between_occurrences",{"aside":1375,"date":2924,"layout":2716,"thumbnail":2925,"tags":2927,"keywords":2928},"2022-11-01",{"src":2926},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-time-between-events-in-a-multi-topic-event-stream.png",[1459,2066],[2929,2930,1598,2931,2932],"event stream","multi-topic","ordering","sort",{"title":2934,"path":2935,"stem":2936,"meta":2937},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flsh_chapter1","2.developers\u002F7.templates\u002FETL\u002F3.lsh_chapter1",{"notebook_export_path":2938,"aside":1375,"date":2939,"thumbnail":2940,"tags":2942,"keywords":2943,"layout":2716},"notebooks\u002Fshowcases\u002Flsh.ipynb","2022-10-25",{"src":2941},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-realtime-classification.png",[1459,2736],[2944,1800,2945,1795,2946,2947,2948,1999,2740],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":2950,"path":2951,"stem":2952,"meta":2953},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fuser_pairs_fuzzy_join","2.developers\u002F7.templates\u002FETL\u002F30.user_pairs_fuzzy_join",{"aside":1375,"date":2954,"thumbnail":2955,"tags":2957,"keywords":2958,"layout":2716},"2023-01-09",{"src":2956,"provider":2734},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-mining-hidden-user-pair-activity-with-fuzzy-join.png",[1459,2066],[2959,2739,2960,2961,2962,2963,2964],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":2966,"path":2967,"stem":2968,"meta":2969},"Pathway Live Data Framework Logistics Application: Streamlined Insights for Real-Time Asset Management","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flogistics","2.developers\u002F7.templates\u002FETL\u002F4.logistics",{"aside":1375,"layout":2716,"date":2908,"thumbnail":2970,"tags":2972,"enterprise":1375,"keywords":2973},{"src":2971},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-logictics-app.png",[1459,2736],[2974,2975,2976],"Logistics","IoT","Dashboard",{"title":2978,"path":2979,"stem":2980,"meta":2981},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fbellman_ford","2.developers\u002F7.templates\u002FETL\u002F40.bellman_ford",{"aside":1375,"date":2982,"layout":2716,"thumbnail":2983,"tags":2985,"notebook_export_path":2986,"keywords":2987},"2022-11-03",{"src":2984,"provider":2734},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-bellman-ford.png",[1459,2736],"notebooks\u002Ftutorials\u002Fbellman_ford.ipynb",[1776,2988,2989,2146,2740],"fixed-point","shortest-path",{"title":2991,"path":2992,"stem":2993,"meta":2994},"Linear regression on a Kafka stream","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flinear_regression_with_kafka","2.developers\u002F7.templates\u002FETL\u002F5.linear_regression_with_kafka",{"aside":1375,"layout":2716,"date":2995,"tags":2996,"keywords":2997,"docker_github_link":2999},"2022-12-23",[1459,2066],[2998,1599,899],"linear regression","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-linear-regression",{"title":3001,"path":3002,"stem":3003,"meta":3004},"Real-Time PageRank on Dynamic Graphs with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fpagerank","2.developers\u002F7.templates\u002FETL\u002F50.pagerank",{"notebook_export_path":3005,"aside":1375,"date":3006,"thumbnail":3007,"tags":3009,"keywords":3010,"layout":2716},"notebooks\u002Ftutorials\u002Fpagerank.ipynb","2022-11-07",{"src":3008,"provider":2734},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-computing-pagerank.png",[1459,2736],[3011,2146,2740],"pagerank",{"title":3013,"path":3014,"stem":3015,"meta":3016},"Sensor Fusion in real-time: combining time series data with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fcombining_time_series","2.developers\u002F7.templates\u002FETL\u002F65.combining_time_series",{"aside":1375,"date":3017,"thumbnail":3018,"tags":3019,"keywords":3020,"notebook_export_path":3023,"layout":2716},"2023-04-28",{"src":2798},[2751],[3021,3022,2804,1495,2740],"time series","multiple data sources","notebooks\u002Ftutorials\u002Fcombining-time-series.ipynb",{"title":3025,"path":3026,"stem":3027,"meta":3028},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Frealtime-log-monitoring","2.developers\u002F7.templates\u002FETL\u002F7.realtime-log-monitoring",{"aside":1375,"layout":2716,"date":3029,"thumbnail":3030,"tags":3032,"keywords":3033,"docker_github_link":3037},"2023-02-27",{"src":3031,"contain":1375},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Frealtime_log_monitoring\u002Fmeme.jpg",[1459,2066],[3034,2739,1599,3035,1574,3036,1601],"log monitoring","Filebeat","ElasticSearch","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Frealtime-log-monitoring\u002Ffilebeat-pathway-slack",{"title":3039,"path":3040,"stem":3041,"children":3042,"page":1404},"Readmes","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes","2.developers\u002F7.templates\u002FETL\u002F_readmes",[3043,3048,3053,3058,3063,3068,3073,3078,3083,3088,3093,3097,3102,3107,3112,3117,3122,3127,3132],{"title":3044,"path":3045,"stem":3046,"meta":3047},"AG2 Multi-Agent Conversations with Pathway Live Data Framework Real-Time RAG","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fag2-multiagent-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fag2-multiagent-rag",{},{"title":3049,"path":3050,"stem":3051,"meta":3052},"Azure ACI Deployment Example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fazure-aci-deploy",{},{"title":3054,"path":3055,"stem":3056,"meta":3057},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbenchmarks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbenchmarks",{},{"title":3059,"path":3060,"stem":3061,"meta":3062},"Best-rated movies examples","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbest-movies-example","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbest-movies-example",{},{"title":3064,"path":3065,"stem":3066,"meta":3067},"Make your LLM app sane again: Forgetting incorrect data in real time","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fconf42","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fconf42",{},{"title":3069,"path":3070,"stem":3071,"meta":3072},"Custom python connector example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fcustom-python-connector-twitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fcustom-python-connector-twitter",{},{"title":3074,"path":3075,"stem":3076,"meta":3077},"Realtime monitoring of logs","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffilebeat-pathway-slack","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffilebeat-pathway-slack",{},{"title":3079,"path":3080,"stem":3081,"meta":3082},"Tutorial: From interactive data exploration to deployment","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffrom_jupyter_to_deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffrom_jupyter_to_deploy",{},{"title":3084,"path":3085,"stem":3086,"meta":3087},"ETL with Kafka in\u002FKafka out","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-etl","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-ETL",{},{"title":3089,"path":3090,"stem":3091,"meta":3092},"Best-rated movies example - Kafka version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-version",{},{"title":3074,"path":3094,"stem":3095,"meta":3096},"\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Flogstash-pathway-elastic","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Flogstash-pathway-elastic",{},{"title":3098,"path":3099,"stem":3100,"meta":3101},"Pathway Live Data Framework Monitoring using OpenTelemetry Collector and Grafana Cloud","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fmonitoring","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fmonitoring",{},{"title":3103,"path":3104,"stem":3105,"meta":3106},"Computing Option Greeks with Pathway Live Data Framework and Databento.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Foption-greeks",{},{"title":3108,"path":3109,"stem":3110,"meta":3111},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fquestion-answering-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fquestion-answering-rag",{},{"title":3113,"path":3114,"stem":3115,"meta":3116},"Best-rated movies example - Redpanda version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fredpanda-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fredpanda-version",{},{"title":3118,"path":3119,"stem":3120,"meta":3121},"Sample Pathway Live Data Framework program for SharePoint connection testing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fsharepoint-test","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fsharepoint-test",{},{"title":3123,"path":3124,"stem":3125,"meta":3126},"Data Preparation for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fspark-data-preparation","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fspark-data-preparation",{},{"title":3128,"path":3129,"stem":3130,"meta":3131},"Realtime Twitter Analysis App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ftwitter",{},{"title":3133,"path":3134,"stem":3135,"meta":3136},"Web Scraping with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fweb-scraping","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fweb-scraping",{},{"title":3138,"meta":3139,"path":3140,"stem":3141,"children":3142,"page":1404},"LLM-RAG Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Frag","2.developers\u002F7.templates\u002Frag",[3143,3156,3171,3187,3200,3218,3228,3243,3253,3263,3274,3287],{"title":3144,"path":3145,"stem":3146,"meta":3147},"Question-Answering RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdemo-question-answering","2.developers\u002F7.templates\u002Frag\u002F1000.demo-question-answering",{"redirection":3148,"thumbnail":3149,"layout":2716,"tags":3151,"date":1996,"keywords":3153,"docker_github_link":3148,"popular":1375},"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fquestion_answering_rag",{"src":3150,"provider":2734},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fqna-th.png",[2065,3152],"ai-pipelines",[1930,1942,1932,1933,3154,1796,899,3155],"vector store","yaml",{"title":3157,"path":3158,"stem":3159,"meta":3160},"Adaptive RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-adaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1001.template-adaptive-rag",{"thumbnail":3161,"tags":3163,"date":3164,"layout":2716,"keywords":3165,"docker_github_link":3170},{"src":3162,"contain":1375},"\u002Fassets\u002Fcontent\u002Fblog\u002Fadaptive-rag-plots\u002Fvisual-abstract.png",[2065,3152],"2024-03-29",[1930,1942,3166,3167,3168,3169,899,3155],"Adaptive RAG","prompt engineering","prompt","explainability","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fadaptive_rag",{"title":3172,"path":3173,"stem":3174,"meta":3175},"Private RAG App with Mistral and Ollama","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-private-rag","2.developers\u002F7.templates\u002Frag\u002F1002.template-private-rag",{"tags":3176,"date":3177,"thumbnail":3178,"layout":2716,"keywords":3180,"docker_github_link":3186},[2065,3152],"2024-04-22",{"src":3179,"contain":1375},"\u002Fassets\u002Fcontent\u002Fblog\u002Flocal-adaptive-rag\u002Flocal_adaptive.png",[1930,1942,3166,3167,3169,3181,3182,3183,3184,3185,899,3155],"mistral","ollama","private rag","local rag","ollama rag","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fprivate_rag",{"title":3188,"path":3189,"stem":3190,"meta":3191},"Multimodal RAG pipeline with GPT4o","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-multimodal-rag","2.developers\u002F7.templates\u002Frag\u002F1003.template-multimodal-rag",{"tags":3192,"date":3193,"thumbnail":3194,"layout":2716,"keywords":3196,"docker_github_link":3199,"popular":1375},[2065,3152],"2024-01-01",{"src":3195,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fmultimodal-RAG\u002FmultimodalRAG-blog-banner.png",[1930,1942,1932,1933,3197,3198,1999,899,3155],"GPT-4o","multimodal RAG","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fmultimodal_rag",{"title":3201,"path":3202,"stem":3203,"children":3204,"meta":3214},"Live Document Indexing (Vector Store \u002F Retriever)","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-demo-document-indexing","2.developers\u002F7.templates\u002Frag\u002F1008.template-demo-document-indexing",[3205],{"title":3201,"path":3202,"stem":3203,"meta":3206},{"thumbnail":3207,"tags":3209,"date":3193,"layout":2716,"keywords":3210,"docker_github_link":3213},{"src":3208,"provider":2734},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Flive-document-indexing-th.png",[2065,3152],[1930,1942,1932,1933,3154,1796,3211,1692,3212,899,3155],"SharePoint","Gdrive","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdocument_indexing",{"thumbnail":3215,"tags":3216,"date":3193,"layout":2716,"keywords":3217,"docker_github_link":3213},{"src":3208,"provider":2734},[2065,3152],[1930,1942,1932,1933,3154,1796,3211,1692,3212,899,3155],{"title":3219,"path":3220,"stem":3221,"meta":3222},"Alerting when answers change on Google Drive","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdrive-alert","2.developers\u002F7.templates\u002Frag\u002F1009.drive-alert",{"tags":3223,"date":3224,"layout":2716,"keywords":3225,"docker_github_link":3227,"hide":1375},[2065,3152],"2024-11-07",[1930,1942,1932,1933,3226,1796,1692,3212,899],"slack","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdrive_alert",{"title":3229,"path":3230,"stem":3231,"meta":3232},"Slides AI Search App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-slides-search","2.developers\u002F7.templates\u002Frag\u002F1010.template-slides-search",{"thumbnail":3233,"tags":3235,"date":3236,"layout":2716,"keywords":3237,"docker_github_link":3242},{"src":3234,"provider":2734},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fslides-search-th.png",[2065,3152],"2024-11-14",[1930,1942,1932,1933,1692,3238,899,3155,3239,3240,3241],"slides","multimodal","VLM","image-to-text","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fslides_ai_search",{"title":3244,"path":3245,"stem":3246,"meta":3247},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fadaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1015.adaptive-rag",{"aside":1375,"thumbnail":3248,"tags":3249,"date":3250,"notebook_export_path":3251,"keywords":3252,"run_template":3158,"hide":1375},{"src":3162,"contain":1375},[2065,3152],"2024-03-28","notebooks\u002Fshowcases\u002Fadaptive_rag_question_answering.ipynb",[1930,1942,3166,3167,3168,3169,2740,1601],{"title":3254,"path":3255,"stem":3256,"meta":3257},"Multimodal RAG for PDFs with Text, Images, and Charts","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fmultimodal-rag","2.developers\u002F7.templates\u002Frag\u002F120.multimodal-rag",{"aside":1375,"thumbnail":3258,"date":3259,"tags":3260,"keywords":3261,"notebook_export_path":3262,"run_template":3189,"popular":1375,"hide":1375},{"src":3195,"contain":1375},"2024-06-20",[2065,3152],[1930,1942,1932,1933,3197,3198,1999,2740,899],"notebooks\u002Fshowcases\u002Fmultimodal-rag.ipynb",{"title":3264,"path":3265,"stem":3266,"meta":3267},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fprivate-rag-ollama-mistral","2.developers\u002F7.templates\u002Frag\u002F161.private-rag-ollama-mistral",{"aside":1375,"thumbnail":3268,"tags":3269,"date":3270,"related":3271,"notebook_export_path":3272,"keywords":3273,"run_template":3173,"hide":1375},{"src":3179,"contain":1375},[2065,3152],"2024-04-23",[3245,3145],"notebooks\u002Fshowcases\u002Fmistral_adaptive_rag_question_answering.ipynb",[1930,1942,3166,3167,3169,3181,3182,3183,3184,3185,2740,899],{"title":3275,"path":3276,"stem":3277,"meta":3278},"Pathway Live Data Framework + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Funstructured-to-structured","2.developers\u002F7.templates\u002Frag\u002F5.unstructured-to-structured",{"aside":1375,"layout":2716,"date":1913,"thumbnail":3279,"tags":3281,"keywords":3282,"docker_github_link":3286},{"src":3280,"contain":1375},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fllm-app\u002Farchitecture_unst_to_st.png",[2065,3152],[1930,3283,1999,1626,1932,3284,3285,202,1999,1601],"SQL","Entity extraction","Document parsing","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Funstructured_to_sql_on_the_fly",{"title":3039,"path":3288,"stem":3289,"children":3290,"page":1404},"\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes","2.developers\u002F7.templates\u002Frag\u002F_readmes",[3291,3296,3304,3309,3314,3319,3324,3329,3334],{"title":3292,"path":3293,"stem":3294,"meta":3295},"AdaptiveRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fadaptive_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fadaptive_rag",{},{"title":3297,"path":3298,"stem":3299,"children":3300,"meta":3303},"DocumentIndexing","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_indexing","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_indexing",[3301],{"title":3297,"path":3298,"stem":3299,"meta":3302},{},{},{"title":3305,"path":3306,"stem":3307,"meta":3308},"DocumentStoreMcpServer","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server",{},{"title":3310,"path":3311,"stem":3312,"meta":3313},"Pathway Live Data Framework + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdrive_alert","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdrive_alert",{},{"title":3315,"path":3316,"stem":3317,"meta":3318},"MultimodalRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fmultimodal_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fmultimodal_rag",{},{"title":3320,"path":3321,"stem":3322,"meta":3323},"PrivateRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fprivate_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fprivate_rag",{},{"title":3325,"path":3326,"stem":3327,"meta":3328},"QuestionAnsweringRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fquestion_answering_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fquestion_answering_rag",{},{"title":3330,"path":3331,"stem":3332,"meta":3333},"SlidesAiSearch","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fslides_ai_search","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fslides_ai_search",{},{"title":3335,"path":3336,"stem":3337,"meta":3338},"UnstructuredToSqlOnTheFly","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly",{},{"navTitle":1400,"layout":1474,"aside":1375,"toc":1404,"single":1375},{"id":4,"title":5,"author":6,"body":3341,"description":1371,"extension":1372,"meta":4308,"navigation":1375,"path":1376,"seo":4309,"sitemap":4310,"stem":1379,"__hash__":1380},{"type":8,"value":3342,"toc":4304},[3343,3345,3351,3370,3372,3602,3609,3618,3626,3648,3657,3689,3703,3743,3756,3768,3928,3930,3932,3974,3980,3984,4036,4040,4114,4118,4120,4134,4138,4144,4284,4288,4302],[11,3344,5],{"id":13},[15,3346,3347,21,3349,27],{},[18,3348,20],{},[23,3350,26],{"href":25},[15,3352,30,3353,35,3355,39,3357,43,3359,47,3361,51,3363,55,3365,58,3367,27],{},[32,3354,34],{},[32,3356,38],{},[32,3358,42],{},[32,3360,46],{},[32,3362,50],{},[32,3364,54],{},[32,3366,34],{},[23,3368,64],{"href":61,"rel":3369},[63],[66,3371,69],{"id":68},[71,3373,3374,3382],{},[74,3375,3376],{},[77,3377,3378,3380],{},[80,3379,82],{},[80,3381,85],{},[87,3383,3384,3394,3404,3414,3424,3434,3444,3454,3464,3474,3484,3494,3534,3576],{},[77,3385,3386,3390],{},[92,3387,3388],{},[32,3389,96],{},[92,3391,3392],{},[32,3393,101],{},[77,3395,3396,3400],{},[92,3397,3398],{},[32,3399,108],{},[92,3401,3402],{},[32,3403,113],{},[77,3405,3406,3410],{},[92,3407,3408],{},[32,3409,120],{},[92,3411,3412],{},[32,3413,125],{},[77,3415,3416,3420],{},[92,3417,3418],{},[32,3419,132],{},[92,3421,3422],{},[32,3423,137],{},[77,3425,3426,3430],{},[92,3427,3428],{},[32,3429,144],{},[92,3431,3432],{},[32,3433,137],{},[77,3435,3436,3440],{},[92,3437,3438],{},[32,3439,38],{},[92,3441,3442,159],{},[32,3443,42],{},[77,3445,3446,3450],{},[92,3447,3448],{},[32,3449,166],{},[92,3451,3452,172],{},[32,3453,171],{},[77,3455,3456,3460],{},[92,3457,3458],{},[32,3459,179],{},[92,3461,3462],{},[32,3463,171],{},[77,3465,3466,3470],{},[92,3467,3468],{},[32,3469,190],{},[92,3471,3472,195],{},[32,3473,113],{},[77,3475,3476,3480],{},[92,3477,3478],{},[32,3479,202],{},[92,3481,3482,207],{},[32,3483,137],{},[77,3485,3486,3490],{},[92,3487,3488],{},[32,3489,214],{},[92,3491,3492,219],{},[32,3493,137],{},[77,3495,3496,3500],{},[92,3497,3498],{},[32,3499,226],{},[92,3501,3502,232,3504,236,3506,47,3508,47,3510,47,3512,47,3514,47,3516,47,3518,251,3520,254,3522,258,3524,262,3526,265,3528,47,3530,47,3532,275],{},[32,3503,231],{},[32,3505,235],{},[32,3507,96],{},[32,3509,108],{},[32,3511,120],{},[32,3513,144],{},[32,3515,132],{},[32,3517,202],{},[32,3519,190],{},[32,3521,214],{},[32,3523,257],{},[32,3525,261],{},[32,3527,38],{},[32,3529,268],{},[32,3531,271],{},[32,3533,274],{},[77,3535,3536,3540],{},[92,3537,3538],{},[32,3539,50],{},[92,3541,284,3542,288,3544,47,3546,47,3548,47,3550,47,3552,47,3554,47,3556,251,3558,305,3560,309,3562,312,3564,315,3566,319,3568,323,3570,326,3572,330,3574,334],{},[18,3543,287],{},[32,3545,96],{},[32,3547,108],{},[32,3549,120],{},[32,3551,144],{},[32,3553,132],{},[32,3555,202],{},[32,3557,190],{},[32,3559,214],{},[32,3561,308],{},[32,3563,231],{},[32,3565,226],{},[32,3567,318],{},[32,3569,322],{},[32,3571,226],{},[32,3573,329],{},[32,3575,333],{},[77,3577,3578,3582],{},[92,3579,3580],{},[32,3581,54],{},[92,3583,343,3584,347,3586,251,3588,352,3590,356,3592,258,3594,363,3596,51,3598,370,3600,373],{},[18,3585,346],{},[32,3587,108],{},[32,3589,120],{},[32,3591,355],{},[32,3593,359],{},[32,3595,362],{},[32,3597,366],{},[32,3599,369],{},[32,3601,54],{},[66,3603,3604,380,3606,387],{"id":376},[18,3605,379],{},[382,3607,386],{"className":3608},[385],[15,3610,3611,398,3616,401],{},[23,3612,3614],{"className":3613,"href":394},[393],[382,3615,397],{},[32,3617,71],{},[15,3619,404,3620,408,3622,412,3624,416],{},[32,3621,407],{},[32,3623,411],{},[32,3625,415],{},[15,3627,419,3628,422,3630,426,3632,430,3634,434,3636,438,3638,51,3640,443,3642,447,3644,451,3646,455],{},[32,3629,411],{},[32,3631,425],{},[32,3633,429],{},[32,3635,433],{},[32,3637,437],{},[32,3639,425],{},[32,3641,429],{},[32,3643,446],{},[32,3645,450],{},[32,3647,454],{},[15,3649,419,3650,460,3652,466,3655,470],{},[32,3651,415],{},[23,3653,465],{"href":463,"rel":3654},[63],[32,3656,469],{},[472,3658,3659,3669],{},[475,3660,3661,480,3663,485,3665,488,3667,491],{},[32,3662,479],{},[482,3664,484],{},[32,3666,425],{},[32,3668,411],{},[475,3670,3671,497,3673,500,3675,504,3677,507,3679,510,3681,514,3683,518,3685,514,3687,525],{},[32,3672,496],{},[32,3674,433],{},[32,3676,503],{},[32,3678,429],{},[32,3680,411],{},[32,3682,513],{},[32,3684,517],{},[32,3686,521],{},[32,3688,524],{},[15,3690,528,3691,532,3693,536,3695,539,3697,21,3699,545,3701,548],{},[32,3692,531],{},[32,3694,535],{},[32,3696,469],{},[18,3698,542],{},[32,3700,479],{},[32,3702,517],{},[472,3704,3705,3735],{},[475,3706,3707,555,3709,558,3711,562,3713,565,3715,568,3717,571,3719,574,3721,578,3723,581,3725,584,3727,587,3729,590,3731,593,3733,596],{},[32,3708,479],{},[32,3710,425],{},[482,3712,561],{},[32,3714,425],{},[32,3716,425],{},[32,3718,479],{},[32,3720,479],{},[482,3722,577],{},[32,3724,479],{},[32,3726,531],{},[32,3728,535],{},[32,3730,425],{},[32,3732,479],{},[32,3734,531],{},[475,3736,3737,601,3739,51,3741,606],{},[32,3738,496],{},[32,3740,479],{},[32,3742,517],{},[15,3744,609,3745,615,3748,619,3750,622,3752,626,3754,629],{},[23,3746,614],{"href":612,"rel":3747},[63],[32,3749,618],{},[32,3751,496],{},[32,3753,625],{},[32,3755,618],{},[15,3757,3758,51,3760,636,3762,639,3764,642,3766,645],{},[32,3759,479],{},[32,3761,496],{},[32,3763,469],{},[32,3765,479],{},[32,3767,479],{},[472,3769,3770,3922],{},[475,3771,3772,3774],{},[18,3773,652],{},[472,3775,3776,3784,3796,3802,3826,3842,3894,3902,3910],{},[475,3777,3778,659,3780,666],{},[18,3779,71],{},[23,3781,3782],{"href":662},[32,3783,665],{},[475,3785,3786,659,3788,674,3790,678,3792,682,3794,27],{},[18,3787,671],{},[32,3789,144],{},[32,3791,677],{},[32,3793,681],{},[32,3795,685],{},[475,3797,3798,659,3800,693],{},[18,3799,690],{},[32,3801,144],{},[475,3803,3804,659,3806,701,3808,47,3810,708,3812,711,3814,714,3816,717,3818,720,3820,723,3822,726,3824,525],{},[18,3805,407],{},[32,3807,700],{},[32,3809,704],{},[32,3811,707],{},[32,3813,411],{},[32,3815,425],{},[32,3817,429],{},[32,3819,415],{},[32,3821,531],{},[32,3823,469],{},[32,3825,729],{},[475,3827,3828,659,3830,701,3832,701,3834,746,3838,750,3840,753],{},[18,3829,469],{},[32,3831,736],{},[32,3833,739],{},[23,3835,3836],{"href":742},[32,3837,745],{},[32,3839,749],{},[32,3841,535],{},[475,3843,3844,659,3846,701,3848,47,3850,47,3852,770,3854,774,3856,778,3858,782,3860,785,3862,789,3864,714,3866,794,3868,797,3870,800,3872,789,3874,714,3876,794,3878,809,3880,812,3882,815,3884,818,3886,821,3888,825,3890,714,3892,832],{},[18,3845,758],{},[32,3847,700],{},[32,3849,763],{},[32,3851,766],{},[32,3853,769],{},[32,3855,773],{},[32,3857,777],{},[32,3859,781],{},[32,3861,407],{},[32,3863,788],{},[32,3865,425],{},[32,3867,429],{},[32,3869,411],{},[32,3871,465],{},[32,3873,469],{},[32,3875,479],{},[32,3877,496],{},[32,3879,415],{},[32,3881,758],{},[32,3883,415],{},[32,3885,531],{},[32,3887,137],{},[32,3889,824],{},[32,3891,828],{},[32,3893,831],{},[475,3895,3896,659,3898,840,3900,844],{},[18,3897,837],{},[32,3899,108],{},[32,3901,843],{},[475,3903,3904,659,3906,840,3908,854],{},[18,3905,849],{},[32,3907,144],{},[32,3909,843],{},[475,3911,3912,659,3914,701,3916,701,3918,868],{},[18,3913,859],{},[32,3915,736],{},[32,3917,739],{},[23,3919,3920],{"href":742},[32,3921,745],{},[475,3923,3924,3926,843],{},[18,3925,873],{},[875,3927],{},[15,3929,879],{},[15,3931,882],{},[884,3933,3934],{"className":886,"code":887,"language":888,"meta":889,"style":889},[32,3935,3936,3944,3958,3970],{"__ignoreMap":889},[382,3937,3938,3940,3942],{"class":894,"line":895},[382,3939,899],{"class":898},[382,3941,903],{"class":902},[382,3943,906],{"class":902},[382,3945,3946,3948,3950,3952,3954,3956],{"class":894,"line":909},[382,3947,899],{"class":898},[382,3949,914],{"class":902},[382,3951,917],{"class":902},[382,3953,920],{"class":902},[382,3955,923],{"class":902},[382,3957,927],{"class":926},[382,3959,3960,3962,3964,3966,3968],{"class":894,"line":930},[382,3961,933],{"class":902},[382,3963,936],{"class":902},[382,3965,939],{"class":902},[382,3967,942],{"class":902},[382,3969,927],{"class":926},[382,3971,3972],{"class":894,"line":947},[382,3973,950],{"class":902},[15,3975,953,3976,957,3978,961],{},[32,3977,956],{},[32,3979,960],{},[15,3981,964,3982,968],{},[32,3983,967],{},[884,3985,3986],{"className":971,"code":972,"language":973,"meta":889,"style":889},[32,3987,3988,3998,4018,4022,4026,4030],{"__ignoreMap":889},[382,3989,3990,3992,3994,3996],{"class":894,"line":895},[382,3991,981],{"class":980},[382,3993,984],{"class":926},[382,3995,987],{"class":980},[382,3997,990],{"class":926},[382,3999,4000,4002,4004,4006,4008,4010,4012,4014,4016],{"class":894,"line":909},[382,4001,995],{"class":926},[382,4003,999],{"class":998},[382,4005,1002],{"class":926},[382,4007,27],{"class":998},[382,4009,1008],{"class":1007},[382,4011,27],{"class":998},[382,4013,1014],{"class":1013},[382,4015,380],{"class":998},[382,4017,1019],{"class":998},[382,4019,4020],{"class":894,"line":930},[382,4021,1024],{"class":902},[382,4023,4024],{"class":894,"line":947},[382,4025,1029],{"class":902},[382,4027,4028],{"class":894,"line":1032},[382,4029,1035],{"class":902},[382,4031,4032,4034],{"class":894,"line":1038},[382,4033,1041],{"class":998},[382,4035,1044],{"class":998},[15,4037,1047,4038,1051],{},[32,4039,1050],{},[884,4041,4042],{"className":971,"code":1054,"language":973,"meta":889,"style":889},[32,4043,4044,4062,4068,4082,4096,4110],{"__ignoreMap":889},[382,4045,4046,4048,4050,4052,4054,4056,4058,4060],{"class":894,"line":895},[382,4047,1061],{"class":926},[382,4049,27],{"class":998},[382,4051,1066],{"class":1007},[382,4053,27],{"class":998},[382,4055,1071],{"class":1007},[382,4057,27],{"class":998},[382,4059,379],{"class":1013},[382,4061,1078],{"class":998},[382,4063,4064,4066],{"class":894,"line":909},[382,4065,1083],{"class":1013},[382,4067,518],{"class":998},[382,4069,4070,4072,4074,4076,4078,4080],{"class":894,"line":930},[382,4071,1091],{"class":1090},[382,4073,999],{"class":998},[382,4075,1096],{"class":998},[382,4077,1099],{"class":902},[382,4079,1096],{"class":998},[382,4081,518],{"class":998},[382,4083,4084,4086,4088,4090,4092,4094],{"class":894,"line":947},[382,4085,1108],{"class":1090},[382,4087,999],{"class":998},[382,4089,1096],{"class":998},[382,4091,1115],{"class":902},[382,4093,1096],{"class":998},[382,4095,518],{"class":998},[382,4097,4098,4100,4102,4104,4106,4108],{"class":894,"line":1032},[382,4099,1124],{"class":1090},[382,4101,999],{"class":998},[382,4103,1096],{"class":998},[382,4105,1131],{"class":902},[382,4107,1096],{"class":998},[382,4109,518],{"class":998},[382,4111,4112],{"class":894,"line":1038},[382,4113,1044],{"class":998},[15,4115,1142,4116,27],{},[32,4117,450],{},[15,4119,1147],{},[884,4121,4122],{"className":886,"code":1150,"language":888,"meta":889,"style":889},[32,4123,4124],{"__ignoreMap":889},[382,4125,4126,4128,4130,4132],{"class":894,"line":895},[382,4127,1157],{"class":898},[382,4129,1160],{"class":998},[382,4131,1163],{"class":902},[382,4133,1166],{"class":998},[15,4135,1169,4136,27],{},[32,4137,454],{},[15,4139,1174,4140,1177,4142,1180],{},[32,4141,749],{},[32,4143,469],{},[884,4145,4146],{"className":971,"code":1183,"language":973,"meta":889,"style":889},[32,4147,4148,4168,4172,4176,4180,4186,4204,4210,4224,4238,4252,4266,4280],{"__ignoreMap":889},[382,4149,4150,4152,4154,4156,4158,4160,4162,4164,4166],{"class":894,"line":895},[382,4151,1190],{"class":926},[382,4153,999],{"class":998},[382,4155,1002],{"class":926},[382,4157,27],{"class":998},[382,4159,1008],{"class":1007},[382,4161,27],{"class":998},[382,4163,1014],{"class":1013},[382,4165,380],{"class":998},[382,4167,1019],{"class":998},[382,4169,4170],{"class":894,"line":909},[382,4171,1211],{"class":902},[382,4173,4174],{"class":894,"line":930},[382,4175,1216],{"class":902},[382,4177,4178],{"class":894,"line":947},[382,4179,1221],{"class":902},[382,4181,4182,4184],{"class":894,"line":1032},[382,4183,1041],{"class":998},[382,4185,1044],{"class":998},[382,4187,4188,4190,4192,4194,4196,4198,4200,4202],{"class":894,"line":1038},[382,4189,1061],{"class":926},[382,4191,27],{"class":998},[382,4193,1066],{"class":1007},[382,4195,27],{"class":998},[382,4197,1071],{"class":1007},[382,4199,27],{"class":998},[382,4201,379],{"class":1013},[382,4203,1078],{"class":998},[382,4205,4206,4208],{"class":894,"line":1248},[382,4207,1251],{"class":1013},[382,4209,518],{"class":998},[382,4211,4212,4214,4216,4218,4220,4222],{"class":894,"line":1256},[382,4213,1091],{"class":1090},[382,4215,999],{"class":998},[382,4217,1096],{"class":998},[382,4219,1099],{"class":902},[382,4221,1096],{"class":998},[382,4223,518],{"class":998},[382,4225,4226,4228,4230,4232,4234,4236],{"class":894,"line":1271},[382,4227,1108],{"class":1090},[382,4229,999],{"class":998},[382,4231,1096],{"class":998},[382,4233,1280],{"class":902},[382,4235,1096],{"class":998},[382,4237,518],{"class":998},[382,4239,4240,4242,4244,4246,4248,4250],{"class":894,"line":1287},[382,4241,1290],{"class":1090},[382,4243,999],{"class":998},[382,4245,1096],{"class":998},[382,4247,1297],{"class":902},[382,4249,1096],{"class":998},[382,4251,518],{"class":998},[382,4253,4254,4256,4258,4260,4262,4264],{"class":894,"line":1304},[382,4255,1307],{"class":1090},[382,4257,1310],{"class":998},[382,4259,1280],{"class":1013},[382,4261,27],{"class":998},[382,4263,849],{"class":1007},[382,4265,1319],{"class":998},[382,4267,4268,4270,4272,4274,4276,4278],{"class":894,"line":1322},[382,4269,1124],{"class":1090},[382,4271,999],{"class":998},[382,4273,1096],{"class":998},[382,4275,1131],{"class":902},[382,4277,1096],{"class":998},[382,4279,518],{"class":998},[382,4281,4282],{"class":894,"line":1337},[382,4283,1044],{"class":998},[15,4285,1342,4286,1345],{},[32,4287,618],{},[884,4289,4290],{"className":886,"code":1348,"language":888,"meta":889,"style":889},[32,4291,4292],{"__ignoreMap":889},[382,4293,4294,4296,4298,4300],{"class":894,"line":895},[382,4295,1157],{"class":898},[382,4297,1160],{"class":998},[382,4299,1359],{"class":902},[382,4301,1166],{"class":998},[1363,4303,1365],{},{"title":889,"searchDepth":909,"depth":909,"links":4305},[4306,4307],{"id":68,"depth":909,"text":69},{"id":376,"depth":909,"text":1370},{"sidebar":1374},{"title":5,"description":1371},{"loc":1376},[4312,4313],{"title":2411,"path":2412,"stem":2413,"children":-1},{"title":2418,"path":2419,"stem":2420,"children":-1},1780669572022]