[{"data":1,"prerenderedAt":5512},["ShallowReactive",2],{"/developers/api-docs/pathway-io/mssql-app":3,"navigation-developers":2020,"/developers/api-docs/pathway-io/mssql":3929,"surr-/developers/api-docs/pathway-io/mssql":5509},{"id":4,"title":5,"author":6,"body":7,"description":2011,"extension":2012,"meta":2013,"navigation":91,"path":2015,"seo":2016,"sitemap":2017,"stem":2018,"__hash__":2019},"content/2.developers/5.API-docs/7.pathway-io/236.mssql.md","pw.io.mssql",null,{"type":8,"value":9,"toc":1999},"minimark",[10,14,28,39,46,171,181,187,192,217,220,225,232,237,631,635,638,642,848,861,872,883,889,906,915,920,923,1057,1060,1063,1113,1116,1319,1326,1397,1400,1480,1490,1502,1526,1529,1682,1684,1687,1723,1726,1786,1789,1873,1876,1989,1995],[11,12,5],"h1",{"id":13},"pwiomssql",[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},"/pricing","Pathway Scale, Pathway Enterprise",".",[15,29,30,31,34,35,38],{},"Pathway provides both ",[18,32,33],{},"Input"," and ",[18,36,37],{},"Output"," connectors for Microsoft SQL Server (MSSQL).",[15,40,41,42,45],{},"The ",[18,43,44],{},"Input connector"," supports two operating modes:",[47,48,49,165],"ul",{},[50,51,52,55,56],"li",{},[18,53,54],{},"Streaming mode"," (default) — uses SQL Server’s Change Data Capture (CDC) feature to track\nrow-level changes in real time via the transaction log. Requires SQL Server Developer or\nEnterprise edition with CDC enabled at the database and table level:",[57,58,63],"pre",{"className":59,"code":60,"language":61,"meta":62,"style":62},"language-sql shiki shiki-themes material-theme-palenight","-- Enable CDC on the database\nEXEC sys.sp_cdc_enable_db;\n\n-- Enable CDC on the table\nEXEC sys.sp_cdc_enable_table\n    @source_schema = N'dbo',\n    @source_name   = N'\u003Ctable>',\n    @role_name     = NULL;\n","sql","",[64,65,66,75,86,93,99,107,132,151],"code",{"__ignoreMap":62},[67,68,71],"span",{"class":69,"line":70},"line",1,[67,72,74],{"class":73},"saEQR","-- Enable CDC on the database\n",[67,76,78,82],{"class":69,"line":77},2,[67,79,81],{"class":80},"sx098","EXEC",[67,83,85],{"class":84},"s0W1g"," sys.sp_cdc_enable_db;\n",[67,87,89],{"class":69,"line":88},3,[67,90,92],{"emptyLinePlaceholder":91},true,"\n",[67,94,96],{"class":69,"line":95},4,[67,97,98],{"class":73},"-- Enable CDC on the table\n",[67,100,102,104],{"class":69,"line":101},5,[67,103,81],{"class":80},[67,105,106],{"class":84}," sys.sp_cdc_enable_table\n",[67,108,110,113,117,121,124,127,129],{"class":69,"line":109},6,[67,111,112],{"class":84},"    @source_schema ",[67,114,116],{"class":115},"sAklC","=",[67,118,120],{"class":119},"sfyAc"," N",[67,122,123],{"class":115},"'",[67,125,126],{"class":119},"dbo",[67,128,123],{"class":115},[67,130,131],{"class":84},",\n",[67,133,135,138,140,142,144,147,149],{"class":69,"line":134},7,[67,136,137],{"class":84},"    @source_name   ",[67,139,116],{"class":115},[67,141,120],{"class":119},[67,143,123],{"class":115},[67,145,146],{"class":119},"\u003Ctable>",[67,148,123],{"class":115},[67,150,131],{"class":84},[67,152,154,157,159,162],{"class":69,"line":153},8,[67,155,156],{"class":84},"    @role_name     ",[67,158,116],{"class":115},[67,160,161],{"class":80}," NULL",[67,163,164],{"class":84},";\n",[50,166,167,170],{},[18,168,169],{},"Static mode"," — reads the full table once as a snapshot, then terminates.",[15,172,173,176,177,180],{},[18,174,175],{},"Primary key requirement",": the schema passed to the input connector must declare at least one\nprimary key column using ",[64,178,179],{},"pw.column_definition(primary_key=True)",". The connector uses these\ncolumns to track which rows have been inserted, updated, or deleted — without them it cannot\nmaintain a consistent snapshot of the table.",[15,182,183,186],{},[18,184,185],{},"Persistence",": the input connector does not support Pathway persistence. On restart, the\nconnector takes a fresh snapshot of the current table state and tracks only new CDC changes from\nthat point forward. Any changes that occurred while the connector was stopped are absorbed into\nthe new snapshot rather than delivered as discrete events. Since Pathway’s internal state is also\nnot saved, the entire pipeline reprocesses from scratch on each restart.",[15,188,41,189,45],{},[18,190,191],{},"Output connector",[47,193,194,207],{},[50,195,196,199,200,34,203,206],{},[18,197,198],{},"Stream of changes mode"," — appends every Pathway update as a row with ",[64,201,202],{},"time",[64,204,205],{},"diff","\ncolumns.",[50,208,209,212,213,216],{},[18,210,211],{},"Snapshot mode"," — maintains the current state of the Pathway table using atomic ",[64,214,215],{},"MERGE","\nupserts.",[15,218,219],{},"The connector uses a pure Rust TDS implementation (no ODBC drivers required) and is compatible\nwith SQL Server 2017, 2019, 2022, and Azure SQL Edge.",[221,222,224],"h2",{"id":223},"type-conversion-input-connector","Type Conversion (Input Connector)",[15,226,227,228,231],{},"The table below describes how MS SQL Server column types are parsed into Pathway values, and what type\nto declare in your ",[64,229,230],{},"pw.Schema"," to receive them correctly.",[233,234,236],"h3",{"id":235},"ms-sql-server-types-parsed-by-the-input-connector","MS SQL Server types parsed by the input connector",[238,239,240,253],"table",{},[241,242,243],"thead",{},[244,245,246,250],"tr",{},[247,248,249],"th",{},"MS SQL Server type",[247,251,252],{},"Pathway schema type and notes",[254,255,256,269,281,296,310,339,354,371,386,410,427,444,460,485,503,518,533,545,563,579,592,604],"tbody",{},[244,257,258,264],{},[259,260,261],"td",{},[64,262,263],{},"BIT",[259,265,266],{},[64,267,268],{},"bool",[244,270,271,276],{},[259,272,273],{},[64,274,275],{},"TINYINT",[259,277,278],{},[64,279,280],{},"int",[244,282,283,292],{},[259,284,285,288,289],{},[64,286,287],{},"SMALLINT"," / ",[64,290,291],{},"INT2",[259,293,294],{},[64,295,280],{},[244,297,298,306],{},[259,299,300,288,303],{},[64,301,302],{},"INT",[64,304,305],{},"INT4",[259,307,308],{},[64,309,280],{},[244,311,312,320],{},[259,313,314,288,317],{},[64,315,316],{},"BIGINT",[64,318,319],{},"INT8",[259,321,322,324,325,328,329,332,333,335,336,338],{},[64,323,280],{},". Alternatively, declare as ",[64,326,327],{},"pw.Duration"," to interpret the value as ",[18,330,331],{},"microseconds"," — use this when the column was written by Pathway’s output connector, which serializes ",[64,334,327],{}," as a ",[64,337,316],{}," microsecond count.",[244,340,341,349],{},[259,342,343,288,346],{},[64,344,345],{},"REAL",[64,347,348],{},"FLOAT4",[259,350,351],{},[64,352,353],{},"float",[244,355,356,367],{},[259,357,358,288,361,288,364],{},[64,359,360],{},"FLOAT",[64,362,363],{},"DOUBLE PRECISION",[64,365,366],{},"FLOAT8",[259,368,369],{},[64,370,353],{},[244,372,373,381],{},[259,374,375,288,378],{},[64,376,377],{},"NUMERIC",[64,379,380],{},"DECIMAL",[259,382,383,385],{},[64,384,353],{}," — converted via string representation. Precision loss is possible for values with more than ~15 significant digits.",[244,387,388,405],{},[259,389,390,288,393,288,396,288,399,288,402],{},[64,391,392],{},"NVARCHAR",[64,394,395],{},"VARCHAR",[64,397,398],{},"CHAR",[64,400,401],{},"TEXT",[64,403,404],{},"NTEXT",[259,406,407],{},[64,408,409],{},"str",[244,411,412,418],{},[259,413,414,288,416],{},[64,415,392],{},[64,417,395],{},[259,419,420,423,424,426],{},[64,421,422],{},"pw.Json"," — the string is parsed as a JSON literal. The string form is what Pathway’s output connector produces for ",[64,425,422],{}," columns.",[244,428,429,435],{},[259,430,431,288,433],{},[64,432,392],{},[64,434,395],{},[259,436,437,440,441,443],{},[64,438,439],{},"pw.Pointer"," — the string is decoded as a Pathway pointer. The string must have been produced by Pathway’s output connector for a ",[64,442,439],{}," column.",[244,445,446,451],{},[259,447,448],{},[64,449,450],{},"NVARCHAR(MAX)",[259,452,453,288,456,459],{},[64,454,455],{},"list",[64,457,458],{},"tuple"," — the column must contain a JSON array as produced by Pathway’s output connector. Elements are parsed recursively according to the declared inner types.",[244,461,462,466],{},[259,463,464],{},[64,465,450],{},[259,467,468,471,472,475,476,479,480,34,482,484],{},[64,469,470],{},"np.ndarray"," — the column must contain a JSON object with keys ",[64,473,474],{},"shape"," (array dimension sizes) and ",[64,477,478],{},"elements"," (flat list of values), as produced by Pathway’s output connector. Only ",[64,481,280],{},[64,483,353],{}," element types are supported.",[244,486,487,498],{},[259,488,489,288,492,288,495],{},[64,490,491],{},"VARBINARY",[64,493,494],{},"BINARY",[64,496,497],{},"IMAGE",[259,499,500],{},[64,501,502],{},"bytes",[244,504,505,510],{},[259,506,507],{},[64,508,509],{},"VARBINARY(MAX)",[259,511,512,515,516,443],{},[64,513,514],{},"pw.PyObjectWrapper"," — the binary payload is deserialized with bincode. The field must have been written by Pathway’s output connector for a ",[64,517,514],{},[244,519,520,525],{},[259,521,522],{},[64,523,524],{},"UNIQUEIDENTIFIER",[259,526,527,529,530,27],{},[64,528,409],{}," — formatted as a standard hyphenated lowercase GUID string, e.g. ",[64,531,532],{},"\"6f9619ff-8b86-d011-b42d-00c04fc964ff\"",[244,534,535,540],{},[259,536,537],{},[64,538,539],{},"XML",[259,541,542,544],{},[64,543,409],{}," — the raw XML text.",[244,546,547,558],{},[259,548,549,288,552,288,555],{},[64,550,551],{},"DATETIME",[64,553,554],{},"DATETIME2",[64,556,557],{},"SMALLDATETIME",[259,559,560],{},[64,561,562],{},"pw.DateTimeNaive",[244,564,565,570],{},[259,566,567],{},[64,568,569],{},"DATE",[259,571,572,574,575,578],{},[64,573,562],{}," — midnight (",[64,576,577],{},"00:00:00",") on the given date.",[244,580,581,586],{},[259,582,583],{},[64,584,585],{},"DATETIMEOFFSET",[259,587,588,591],{},[64,589,590],{},"pw.DateTimeUtc"," — the timezone offset is applied so that the result is in UTC.",[244,593,594,599],{},[259,595,596],{},[64,597,598],{},"TIME",[259,600,601,603],{},[64,602,327],{}," — microseconds elapsed since midnight.",[244,605,606,609],{},[259,607,608],{},"Any nullable column",[259,610,611,612,615,616,619,620,623,624,627,628,630],{},"Declare the field as optional in the schema. It will be parsed as ",[64,613,614],{},"None"," if the MSSQL value is ",[64,617,618],{},"NULL","; otherwise the value is parsed as type ",[64,621,622],{},"T",". If the schema field is ",[18,625,626],{},"not"," declared as optional and a ",[64,629,618],{}," is received, an error is raised.",[221,632,634],{"id":633},"type-conversion-output-connector","Type Conversion (Output Connector)",[15,636,637],{},"The table below describes how Pathway types are mapped to MS SQL Server column types in the output\nconnector. All listed types can be round-tripped back via the input connector when the original\nschema type is specified.",[233,639,641],{"id":640},"pathway-types-conversion-into-ms-sql-server","Pathway types conversion into MS SQL Server",[238,643,644,654],{},[241,645,646],{},[244,647,648,651],{},[247,649,650],{},"Pathway type",[247,652,653],{},"MS SQL Server type and notes",[254,655,656,666,676,686,701,714,724,735,747,759,776,789,804,817,830],{},[244,657,658,662],{},[259,659,660],{},[64,661,268],{},[259,663,664],{},[64,665,263],{},[244,667,668,672],{},[259,669,670],{},[64,671,280],{},[259,673,674],{},[64,675,316],{},[244,677,678,682],{},[259,679,680],{},[64,681,353],{},[259,683,684],{},[64,685,360],{},[244,687,688,692],{},[259,689,690],{},[64,691,409],{},[259,693,694,696,697,700],{},[64,695,450],{},". When the column is part of the primary key, ",[64,698,699],{},"NVARCHAR(450)"," is used instead (SQL Server’s maximum index key width).",[244,702,703,707],{},[259,704,705],{},[64,706,439],{},[259,708,709,711,712,27],{},[64,710,450],{},". When used as primary key, ",[64,713,699],{},[244,715,716,720],{},[259,717,718],{},[64,719,502],{},[259,721,722],{},[64,723,509],{},[244,725,726,730],{},[259,727,728],{},[64,729,422],{},[259,731,732,734],{},[64,733,450],{}," — the JSON value is serialized to a string.",[244,736,737,741],{},[259,738,739],{},[64,740,562],{},[259,742,743,746],{},[64,744,745],{},"DATETIME2(6)"," — microsecond precision.",[244,748,749,753],{},[259,750,751],{},[64,752,590],{},[259,754,755,758],{},[64,756,757],{},"DATETIMEOFFSET(6)"," — stored as UTC with a zero offset, microsecond precision.",[244,760,761,765],{},[259,762,763],{},[64,764,327],{},[259,766,767,769,770,772,773,775],{},[64,768,316],{}," — serialized as ",[18,771,331],{},". Declare the column as ",[64,774,327],{}," on read to restore the original value.",[244,777,778,782],{},[259,779,780],{},[64,781,514],{},[259,783,784,786,787,775],{},[64,785,509],{}," — serialized with bincode. Declare the column as ",[64,788,514],{},[244,790,791,796],{},[259,792,793],{},[64,794,795],{},"Optional",[259,797,798,799,801,802,27],{},"Nullable column of the corresponding non-optional type. ",[64,800,614],{}," values are stored as ",[64,803,618],{},[244,805,806,810],{},[259,807,808],{},[64,809,458],{},[259,811,812,814,815,775],{},[64,813,450],{}," — serialized as a JSON array. Elements are converted recursively. Declare the column as ",[64,816,458],{},[244,818,819,823],{},[259,820,821],{},[64,822,455],{},[259,824,825,827,828,775],{},[64,826,450],{}," — serialized as a JSON array. Elements are converted recursively. Declare the column as a typed ",[64,829,455],{},[244,831,832,836],{},[259,833,834],{},[64,835,470],{},[259,837,838,840,841,475,843,845,846,775],{},[64,839,450],{}," — serialized as a JSON object with keys ",[64,842,474],{},[64,844,478],{}," (flat list of values). Declare the column as ",[64,847,470],{},[221,849,851,854,855,860],{"id":850},"pathway.io.mssql.read",[18,852,853],{},"read","(",[67,856,859],{"className":857},[858],"sphinx-paramslist","connection_string, table_name, schema, *, mode='streaming', schema_name='dbo', autocommit_duration_ms=1500, name=None, max_backlog_size=None, debug_data=None",")",[15,862,863,871],{},[23,864,868],{"className":865,"href":867},[866],"sphinx-source-url","https://github.com/pathwaycom/pathway/tree/main/python/pathway/io/mssql/__init__.py#L23-L183",[67,869,870],{},"source","Reads a table from a Microsoft SQL Server database.",[15,873,874,875,878,879,882],{},"In ",[64,876,877],{},"\"static\""," mode, the connector issues a plain ",[64,880,881],{},"SELECT"," against the\ntable, emits all rows, and terminates. No special database configuration is\nrequired beyond normal read access to the table. Works on any SQL Server\nedition, including Express.",[15,884,874,885,888],{},[64,886,887],{},"\"streaming\""," mode (the default), the connector uses MSSQL’s Change\nData Capture (CDC) feature to track changes via the transaction log. This\nrequires:",[47,890,891,894,900],{},[50,892,893],{},"SQL Server Developer or Enterprise edition",[50,895,896,897],{},"CDC enabled on the database: ",[64,898,899],{},"EXEC sys.sp_cdc_enable_db;",[50,901,902,903],{},"CDC enabled on the table:\n",[64,904,905],{},"EXEC sys.sp_cdc_enable_table @source_schema=N'dbo', @source_name=N'\u003Ctable>', @role_name=NULL;",[15,907,908,911,912,914],{},[18,909,910],{},"Primary key",": the schema must declare at least one primary key column via\n",[64,913,179],{},". The connector uses these columns\nto track which rows have been inserted, updated, or deleted — without them it\ncannot maintain a consistent snapshot of the table.",[15,916,917,919],{},[18,918,185],{},": this connector does not support Pathway persistence. On\nrestart, the connector takes a fresh snapshot of the current table state and\ntracks only new CDC changes from that point forward. Any changes that occurred\nwhile the connector was stopped are absorbed into the new snapshot rather than\ndelivered as discrete events. Since Pathway’s internal state is also not saved,\nthe entire pipeline reprocesses from scratch on each restart.",[15,921,922],{},"The connection uses the TDS protocol via a pure Rust implementation\n(no ODBC drivers required), so it works on any Linux environment without\nadditional system dependencies. Compatible with SQL Server 2017, 2019, 2022,\nand Azure SQL Edge.",[47,924,925,1044],{},[50,926,927,930],{},[18,928,929],{},"Parameters",[47,931,932,944,952,968,990,1005,1015,1025,1035],{},[50,933,934,937,938,940,941],{},[18,935,936],{},"connection_string"," (",[64,939,409],{},") – ADO.NET-style connection string for the MSSQL database.\nExample: ",[64,942,943],{},"\"Server=tcp:localhost,1433;Database=mydb;User Id=sa;Password=pass;TrustServerCertificate=true\"",[50,945,946,937,949,951],{},[18,947,948],{},"table_name",[64,950,409],{},") – Name of the table to read from.",[50,953,954,937,957,960,961,967],{},[18,955,956],{},"schema",[64,958,959],{},"type","[",[23,962,964],{"href":963},"/developers/api-docs/pathway#pathway.Schema",[64,965,966],{},"Schema","]) – Schema of the resulting table.",[50,969,970,937,973,960,976,979,980,983,984,986,987,989],{},[18,971,972],{},"mode",[64,974,975],{},"Literal",[64,977,978],{},"'static'",", ",[64,981,982],{},"'streaming'","]) – ",[64,985,887],{}," (the default) uses CDC for real-time change\ntracking via the transaction log; requires CDC to be enabled on the\ndatabase and table. ",[64,988,877],{}," reads the full table once as a\nsnapshot, then terminates; no CDC setup is needed.",[50,991,992,937,995,997,998,1000,1001,1004],{},[18,993,994],{},"schema_name",[64,996,409],{}," | ",[64,999,614],{},") – Name of the database schema containing the table. Defaults to\n",[64,1002,1003],{},"\"dbo\"",", which is the default schema in MSSQL.",[50,1006,1007,937,1010,997,1012,1014],{},[18,1008,1009],{},"autocommit_duration_ms",[64,1011,280],{},[64,1013,614],{},") – The maximum time between two commits. Every\nautocommit_duration_ms milliseconds, the updates received by the connector are\ncommitted and pushed into Pathway’s computation graph.",[50,1016,1017,937,1020,997,1022,1024],{},[18,1018,1019],{},"name",[64,1021,409],{},[64,1023,614],{},") – A unique name for the connector. If provided, this name will be used in\nlogs and monitoring dashboards.",[50,1026,1027,937,1030,997,1032,1034],{},[18,1028,1029],{},"max_backlog_size",[64,1031,280],{},[64,1033,614],{},") – Limit on the number of entries read from the input source and kept\nin processing at any moment.",[50,1036,1037,937,1040,1043],{},[18,1038,1039],{},"debug_data",[64,1041,1042],{},"Any",") – Static data to use instead of the external source (for testing).",[50,1045,1046,1049,1052,1056],{},[18,1047,1048],{},"Returns",[1050,1051],"br",{},[1053,1054,1055],"em",{},"Table"," – The table read.",[15,1058,1059],{},"Example:",[15,1061,1062],{},"To test this connector locally, you can run a MSSQL instance using Docker:",[57,1064,1068],{"className":1065,"code":1066,"language":1067,"meta":62,"style":62},"language-bash shiki shiki-themes material-theme-palenight","docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=YourStrong!Passw0rd' \\\n    -p 1433:1433 mcr.microsoft.com/mssql/server:2022-latest\n","bash",[64,1069,1070,1102],{"__ignoreMap":62},[67,1071,1072,1076,1079,1082,1085,1088,1090,1092,1094,1097,1099],{"class":69,"line":70},[67,1073,1075],{"class":1074},"s5Dmg","docker",[67,1077,1078],{"class":119}," run",[67,1080,1081],{"class":119}," -e",[67,1083,1084],{"class":115}," '",[67,1086,1087],{"class":119},"ACCEPT_EULA=Y",[67,1089,123],{"class":115},[67,1091,1081],{"class":119},[67,1093,1084],{"class":115},[67,1095,1096],{"class":119},"MSSQL_SA_PASSWORD=YourStrong!Passw0rd",[67,1098,123],{"class":115},[67,1100,1101],{"class":84}," \\\n",[67,1103,1104,1107,1110],{"class":69,"line":77},[67,1105,1106],{"class":119},"    -p",[67,1108,1109],{"class":119}," 1433:1433",[67,1111,1112],{"class":119}," mcr.microsoft.com/mssql/server:2022-latest\n",[15,1114,1115],{},"For static snapshot mode (no CDC setup required):",[57,1117,1121],{"className":1118,"code":1119,"language":1120,"meta":62,"style":62},"language-python shiki shiki-themes material-theme-palenight","import pathway as pw\nclass MySchema(pw.Schema):\n    id: int = pw.column_definition(primary_key=True)\n    name: str\n    value: float\ntable = pw.io.mssql.read(\n    connection_string=\"Server=tcp:localhost,1433;Database=testdb;\"\n        \"User Id=sa;Password=YourStrong!Passw0rd;TrustServerCertificate=true\",\n    table_name=\"my_table\",\n    schema=MySchema,\n    mode=\"static\",\n)\n","python",[64,1122,1123,1138,1159,1191,1201,1211,1238,1254,1266,1283,1296,1313],{"__ignoreMap":62},[67,1124,1125,1129,1132,1135],{"class":69,"line":70},[67,1126,1128],{"class":1127},"s6cf3","import",[67,1130,1131],{"class":84}," pathway ",[67,1133,1134],{"class":1127},"as",[67,1136,1137],{"class":84}," pw\n",[67,1139,1140,1144,1147,1149,1152,1154,1156],{"class":69,"line":77},[67,1141,1143],{"class":1142},"sJ14y","class",[67,1145,1146],{"class":1074}," MySchema",[67,1148,854],{"class":115},[67,1150,1151],{"class":1074},"pw",[67,1153,27],{"class":115},[67,1155,966],{"class":1074},[67,1157,1158],{"class":115},"):\n",[67,1160,1161,1165,1168,1171,1174,1177,1179,1182,1184,1188],{"class":69,"line":88},[67,1162,1164],{"class":1163},"sdLwU","    id",[67,1166,1167],{"class":115},":",[67,1169,1170],{"class":1074}," int",[67,1172,1173],{"class":115}," =",[67,1175,1176],{"class":84}," pw",[67,1178,27],{"class":115},[67,1180,1181],{"class":1163},"column_definition",[67,1183,854],{"class":115},[67,1185,1187],{"class":1186},"s7ZW3","primary_key",[67,1189,1190],{"class":115},"=True)\n",[67,1192,1193,1196,1198],{"class":69,"line":95},[67,1194,1195],{"class":84},"    name",[67,1197,1167],{"class":115},[67,1199,1200],{"class":1074}," str\n",[67,1202,1203,1206,1208],{"class":69,"line":101},[67,1204,1205],{"class":84},"    value",[67,1207,1167],{"class":115},[67,1209,1210],{"class":1074}," float\n",[67,1212,1213,1216,1218,1220,1222,1226,1228,1231,1233,1235],{"class":69,"line":109},[67,1214,1215],{"class":84},"table ",[67,1217,116],{"class":115},[67,1219,1176],{"class":84},[67,1221,27],{"class":115},[67,1223,1225],{"class":1224},"s-wAU","io",[67,1227,27],{"class":115},[67,1229,1230],{"class":1224},"mssql",[67,1232,27],{"class":115},[67,1234,853],{"class":1163},[67,1236,1237],{"class":115},"(\n",[67,1239,1240,1243,1245,1248,1251],{"class":69,"line":134},[67,1241,1242],{"class":1186},"    connection_string",[67,1244,116],{"class":115},[67,1246,1247],{"class":115},"\"",[67,1249,1250],{"class":119},"Server=tcp:localhost,1433;Database=testdb;",[67,1252,1253],{"class":115},"\"\n",[67,1255,1256,1259,1262,1264],{"class":69,"line":153},[67,1257,1258],{"class":115},"        \"",[67,1260,1261],{"class":119},"User Id=sa;Password=YourStrong!Passw0rd;TrustServerCertificate=true",[67,1263,1247],{"class":115},[67,1265,131],{"class":115},[67,1267,1269,1272,1274,1276,1279,1281],{"class":69,"line":1268},9,[67,1270,1271],{"class":1186},"    table_name",[67,1273,116],{"class":115},[67,1275,1247],{"class":115},[67,1277,1278],{"class":119},"my_table",[67,1280,1247],{"class":115},[67,1282,131],{"class":115},[67,1284,1286,1289,1291,1294],{"class":69,"line":1285},10,[67,1287,1288],{"class":1186},"    schema",[67,1290,116],{"class":115},[67,1292,1293],{"class":1163},"MySchema",[67,1295,131],{"class":115},[67,1297,1299,1302,1304,1306,1309,1311],{"class":69,"line":1298},11,[67,1300,1301],{"class":1186},"    mode",[67,1303,116],{"class":115},[67,1305,1247],{"class":115},[67,1307,1308],{"class":119},"static",[67,1310,1247],{"class":115},[67,1312,131],{"class":115},[67,1314,1316],{"class":69,"line":1315},12,[67,1317,1318],{"class":115},")\n",[15,1320,1321,1322,1325],{},"For streaming mode with CDC, first enable CDC on the database and the table\n(run these once in SQL Server Management Studio or via ",[64,1323,1324],{},"sqlcmd","):",[57,1327,1329],{"className":59,"code":1328,"language":61,"meta":62,"style":62},"-- Enable CDC on the database\nEXEC sys.sp_cdc_enable_db;\n\n-- Enable CDC on the table\nEXEC sys.sp_cdc_enable_table\n    @source_schema = N'dbo',\n    @source_name   = N'my_table',\n    @role_name     = NULL;\n",[64,1330,1331,1335,1341,1345,1349,1355,1371,1387],{"__ignoreMap":62},[67,1332,1333],{"class":69,"line":70},[67,1334,74],{"class":73},[67,1336,1337,1339],{"class":69,"line":77},[67,1338,81],{"class":80},[67,1340,85],{"class":84},[67,1342,1343],{"class":69,"line":88},[67,1344,92],{"emptyLinePlaceholder":91},[67,1346,1347],{"class":69,"line":95},[67,1348,98],{"class":73},[67,1350,1351,1353],{"class":69,"line":101},[67,1352,81],{"class":80},[67,1354,106],{"class":84},[67,1356,1357,1359,1361,1363,1365,1367,1369],{"class":69,"line":109},[67,1358,112],{"class":84},[67,1360,116],{"class":115},[67,1362,120],{"class":119},[67,1364,123],{"class":115},[67,1366,126],{"class":119},[67,1368,123],{"class":115},[67,1370,131],{"class":84},[67,1372,1373,1375,1377,1379,1381,1383,1385],{"class":69,"line":134},[67,1374,137],{"class":84},[67,1376,116],{"class":115},[67,1378,120],{"class":119},[67,1380,123],{"class":115},[67,1382,1278],{"class":119},[67,1384,123],{"class":115},[67,1386,131],{"class":84},[67,1388,1389,1391,1393,1395],{"class":69,"line":153},[67,1390,156],{"class":84},[67,1392,116],{"class":115},[67,1394,161],{"class":80},[67,1396,164],{"class":84},[15,1398,1399],{},"Then read from it using streaming mode:",[57,1401,1403],{"className":1118,"code":1402,"language":1120,"meta":62,"style":62},"table = pw.io.mssql.read(  \n    connection_string=\"Server=tcp:localhost,1433;Database=testdb;\"\n        \"User Id=sa;Password=YourStrong!Passw0rd;TrustServerCertificate=true\",\n    table_name=\"my_table\",\n    schema=MySchema,\n)\n",[64,1404,1405,1430,1442,1452,1466,1476],{"__ignoreMap":62},[67,1406,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425,1427],{"class":69,"line":70},[67,1408,1215],{"class":84},[67,1410,116],{"class":115},[67,1412,1176],{"class":84},[67,1414,27],{"class":115},[67,1416,1225],{"class":1224},[67,1418,27],{"class":115},[67,1420,1230],{"class":1224},[67,1422,27],{"class":115},[67,1424,853],{"class":1163},[67,1426,854],{"class":115},[67,1428,1429],{"class":1163},"  \n",[67,1431,1432,1434,1436,1438,1440],{"class":69,"line":77},[67,1433,1242],{"class":1186},[67,1435,116],{"class":115},[67,1437,1247],{"class":115},[67,1439,1250],{"class":119},[67,1441,1253],{"class":115},[67,1443,1444,1446,1448,1450],{"class":69,"line":88},[67,1445,1258],{"class":115},[67,1447,1261],{"class":119},[67,1449,1247],{"class":115},[67,1451,131],{"class":115},[67,1453,1454,1456,1458,1460,1462,1464],{"class":69,"line":95},[67,1455,1271],{"class":1186},[67,1457,116],{"class":115},[67,1459,1247],{"class":115},[67,1461,1278],{"class":119},[67,1463,1247],{"class":115},[67,1465,131],{"class":115},[67,1467,1468,1470,1472,1474],{"class":69,"line":101},[67,1469,1288],{"class":1186},[67,1471,116],{"class":115},[67,1473,1293],{"class":1163},[67,1475,131],{"class":115},[67,1477,1478],{"class":69,"line":109},[67,1479,1318],{"class":115},[221,1481,1483,854,1486,860],{"id":1482},"pathway.io.mssql.write",[18,1484,1485],{},"write",[67,1487,1489],{"className":1488},[858],"table, connection_string, table_name, *, schema_name='dbo', max_batch_size=None, init_mode='default', output_table_type='stream_of_changes', primary_key=None, name=None, sort_by=None",[15,1491,1492,1498,1499,1501],{},[23,1493,1496],{"className":1494,"href":1495},[866],"https://github.com/pathwaycom/pathway/tree/main/python/pathway/io/mssql/__init__.py#L186-L314",[67,1497,870],{},"Writes ",[64,1500,238],{}," to a Microsoft SQL Server table.",[15,1503,1504,1505,1508,1509,1512,1513,1515,1516,1518,1519,1521,1522,34,1524,426],{},"The connector works in two modes: ",[18,1506,1507],{},"snapshot"," mode and ",[18,1510,1511],{},"stream of changes",".\nIn ",[18,1514,1507],{}," mode, the table maintains the current snapshot of the data\nusing MSSQL’s ",[64,1517,215],{}," statement for atomic upserts.\nIn ",[18,1520,1511],{}," mode, the table contains the log of all data updates\nwith ",[64,1523,202],{},[64,1525,205],{},[15,1527,1528],{},"Compatible with all MSSQL versions on Linux (SQL Server 2017, 2019, 2022,\nand Azure SQL Edge). Uses pure Rust TDS implementation — no ODBC drivers required.",[47,1530,1531,1676],{},[50,1532,1533,1535],{},[18,1534,929],{},[47,1536,1537,1547,1555,1562,1572,1582,1610,1637,1653,1661],{},[50,1538,1539,937,1541,1546],{},[18,1540,238],{},[23,1542,1544],{"href":1543},"/developers/api-docs/pathway-table#pathway.Table",[64,1545,1055],{},") – Table to be written.",[50,1548,1549,937,1551,940,1553],{},[18,1550,936],{},[64,1552,409],{},[64,1554,943],{},[50,1556,1557,937,1559,1561],{},[18,1558,948],{},[64,1560,409],{},") – Name of the target table.",[50,1563,1564,937,1566,997,1568,1000,1570,1004],{},[18,1565,994],{},[64,1567,409],{},[64,1569,614],{},[64,1571,1003],{},[50,1573,1574,937,1577,997,1579,1581],{},[18,1575,1576],{},"max_batch_size",[64,1578,280],{},[64,1580,614],{},") – Maximum number of entries allowed to be committed within a\nsingle transaction.",[50,1583,1584,937,1587,960,1589,979,1592,979,1595,983,1598,1601,1602,1605,1606,1609],{},[18,1585,1586],{},"init_mode",[64,1588,975],{},[64,1590,1591],{},"'default'",[64,1593,1594],{},"'create_if_not_exists'",[64,1596,1597],{},"'replace'",[64,1599,1600],{},"\"default\"",": The default initialization mode;\n",[64,1603,1604],{},"\"create_if_not_exists\"",": creates the table if it does not exist;\n",[64,1607,1608],{},"\"replace\"",": drops and recreates the table.",[50,1611,1612,937,1615,960,1617,979,1620,1623,1624,1627,1628,34,1630,1632,1633,1636],{},[18,1613,1614],{},"output_table_type",[64,1616,975],{},[64,1618,1619],{},"'stream_of_changes'",[64,1621,1622],{},"'snapshot'","]) – Defines how the output table manages its data. If set to\n",[64,1625,1626],{},"\"stream_of_changes\""," (the default), the system outputs a stream of\nmodifications with ",[64,1629,202],{},[64,1631,205],{}," columns. If set to ",[64,1634,1635],{},"\"snapshot\"",",\nthe table maintains the current state using atomic MERGE upserts.",[50,1638,1639,937,1641,960,1643,1649,1650,1652],{},[18,1640,1187],{},[64,1642,455],{},[23,1644,1646],{"href":1645},"/developers/api-docs/pathway#pathway.ColumnReference",[64,1647,1648],{},"ColumnReference","] | ",[64,1651,614],{},") – When using snapshot mode, one or more columns that form the primary\nkey in the target MSSQL table.",[50,1654,1655,937,1657,997,1659,1024],{},[18,1656,1019],{},[64,1658,409],{},[64,1660,614],{},[50,1662,1663,937,1666,960,1668,960,1671,1675],{},[18,1664,1665],{},"sort_by",[64,1667,795],{},[64,1669,1670],{},"Iterable",[23,1672,1673],{"href":1645},[64,1674,1648],{},"]]) – If specified, the output will be sorted in ascending order based on the\nvalues of the given columns within each minibatch. When multiple columns are provided,\nthe corresponding value tuples will be compared lexicographically.",[50,1677,1678,1680,614],{},[18,1679,1048],{},[1050,1681],{},[15,1683,1059],{},[15,1685,1686],{},"To test this connector locally, run a MSSQL instance using Docker:",[57,1688,1689],{"className":1065,"code":1066,"language":1067,"meta":62,"style":62},[64,1690,1691,1715],{"__ignoreMap":62},[67,1692,1693,1695,1697,1699,1701,1703,1705,1707,1709,1711,1713],{"class":69,"line":70},[67,1694,1075],{"class":1074},[67,1696,1078],{"class":119},[67,1698,1081],{"class":119},[67,1700,1084],{"class":115},[67,1702,1087],{"class":119},[67,1704,123],{"class":115},[67,1706,1081],{"class":119},[67,1708,1084],{"class":115},[67,1710,1096],{"class":119},[67,1712,123],{"class":115},[67,1714,1101],{"class":84},[67,1716,1717,1719,1721],{"class":69,"line":77},[67,1718,1106],{"class":119},[67,1720,1109],{"class":119},[67,1722,1112],{"class":119},[15,1724,1725],{},"Then write to it:",[57,1727,1729],{"className":1118,"code":1728,"language":1120,"meta":62,"style":62},"import pathway as pw\ntable = pw.debug.table_from_markdown('''\n   key | value\n     1 | Hello\n     2 | World\n''')\n",[64,1730,1731,1741,1764,1769,1774,1779],{"__ignoreMap":62},[67,1732,1733,1735,1737,1739],{"class":69,"line":70},[67,1734,1128],{"class":1127},[67,1736,1131],{"class":84},[67,1738,1134],{"class":1127},[67,1740,1137],{"class":84},[67,1742,1743,1745,1747,1749,1751,1754,1756,1759,1761],{"class":69,"line":77},[67,1744,1215],{"class":84},[67,1746,116],{"class":115},[67,1748,1176],{"class":84},[67,1750,27],{"class":115},[67,1752,1753],{"class":1224},"debug",[67,1755,27],{"class":115},[67,1757,1758],{"class":1163},"table_from_markdown",[67,1760,854],{"class":115},[67,1762,1763],{"class":115},"'''\n",[67,1765,1766],{"class":69,"line":88},[67,1767,1768],{"class":119},"   key | value\n",[67,1770,1771],{"class":69,"line":95},[67,1772,1773],{"class":119},"     1 | Hello\n",[67,1775,1776],{"class":69,"line":101},[67,1777,1778],{"class":119},"     2 | World\n",[67,1780,1781,1784],{"class":69,"line":109},[67,1782,1783],{"class":115},"'''",[67,1785,1318],{"class":115},[15,1787,1788],{},"Stream of changes mode:",[57,1790,1792],{"className":1118,"code":1791,"language":1120,"meta":62,"style":62},"pw.io.mssql.write(\n    table,\n    \"Server=tcp:localhost,1433;Database=testdb;\"\n        \"User Id=sa;Password=YourStrong!Passw0rd;TrustServerCertificate=true\",\n    table_name=\"test\",\n    init_mode=\"create_if_not_exists\",\n)\n",[64,1793,1794,1812,1819,1828,1838,1853,1869],{"__ignoreMap":62},[67,1795,1796,1798,1800,1802,1804,1806,1808,1810],{"class":69,"line":70},[67,1797,1151],{"class":84},[67,1799,27],{"class":115},[67,1801,1225],{"class":1224},[67,1803,27],{"class":115},[67,1805,1230],{"class":1224},[67,1807,27],{"class":115},[67,1809,1485],{"class":1163},[67,1811,1237],{"class":115},[67,1813,1814,1817],{"class":69,"line":77},[67,1815,1816],{"class":1163},"    table",[67,1818,131],{"class":115},[67,1820,1821,1824,1826],{"class":69,"line":88},[67,1822,1823],{"class":115},"    \"",[67,1825,1250],{"class":119},[67,1827,1253],{"class":115},[67,1829,1830,1832,1834,1836],{"class":69,"line":95},[67,1831,1258],{"class":115},[67,1833,1261],{"class":119},[67,1835,1247],{"class":115},[67,1837,131],{"class":115},[67,1839,1840,1842,1844,1846,1849,1851],{"class":69,"line":101},[67,1841,1271],{"class":1186},[67,1843,116],{"class":115},[67,1845,1247],{"class":115},[67,1847,1848],{"class":119},"test",[67,1850,1247],{"class":115},[67,1852,131],{"class":115},[67,1854,1855,1858,1860,1862,1865,1867],{"class":69,"line":109},[67,1856,1857],{"class":1186},"    init_mode",[67,1859,116],{"class":115},[67,1861,1247],{"class":115},[67,1863,1864],{"class":119},"create_if_not_exists",[67,1866,1247],{"class":115},[67,1868,131],{"class":115},[67,1870,1871],{"class":69,"line":134},[67,1872,1318],{"class":115},[15,1874,1875],{},"Snapshot mode:",[57,1877,1879],{"className":1118,"code":1878,"language":1120,"meta":62,"style":62},"pw.io.mssql.write(\n    table,\n    \"Server=tcp:localhost,1433;Database=testdb;\"\n        \"User Id=sa;Password=YourStrong!Passw0rd;TrustServerCertificate=true\",\n    table_name=\"test_snapshot\",\n    init_mode=\"create_if_not_exists\",\n    output_table_type=\"snapshot\",\n    primary_key=[table.key],\n)\n",[64,1880,1881,1899,1905,1913,1923,1938,1952,1967,1985],{"__ignoreMap":62},[67,1882,1883,1885,1887,1889,1891,1893,1895,1897],{"class":69,"line":70},[67,1884,1151],{"class":84},[67,1886,27],{"class":115},[67,1888,1225],{"class":1224},[67,1890,27],{"class":115},[67,1892,1230],{"class":1224},[67,1894,27],{"class":115},[67,1896,1485],{"class":1163},[67,1898,1237],{"class":115},[67,1900,1901,1903],{"class":69,"line":77},[67,1902,1816],{"class":1163},[67,1904,131],{"class":115},[67,1906,1907,1909,1911],{"class":69,"line":88},[67,1908,1823],{"class":115},[67,1910,1250],{"class":119},[67,1912,1253],{"class":115},[67,1914,1915,1917,1919,1921],{"class":69,"line":95},[67,1916,1258],{"class":115},[67,1918,1261],{"class":119},[67,1920,1247],{"class":115},[67,1922,131],{"class":115},[67,1924,1925,1927,1929,1931,1934,1936],{"class":69,"line":101},[67,1926,1271],{"class":1186},[67,1928,116],{"class":115},[67,1930,1247],{"class":115},[67,1932,1933],{"class":119},"test_snapshot",[67,1935,1247],{"class":115},[67,1937,131],{"class":115},[67,1939,1940,1942,1944,1946,1948,1950],{"class":69,"line":109},[67,1941,1857],{"class":1186},[67,1943,116],{"class":115},[67,1945,1247],{"class":115},[67,1947,1864],{"class":119},[67,1949,1247],{"class":115},[67,1951,131],{"class":115},[67,1953,1954,1957,1959,1961,1963,1965],{"class":69,"line":134},[67,1955,1956],{"class":1186},"    output_table_type",[67,1958,116],{"class":115},[67,1960,1247],{"class":115},[67,1962,1507],{"class":119},[67,1964,1247],{"class":115},[67,1966,131],{"class":115},[67,1968,1969,1972,1975,1977,1979,1982],{"class":69,"line":153},[67,1970,1971],{"class":1186},"    primary_key",[67,1973,1974],{"class":115},"=[",[67,1976,238],{"class":1163},[67,1978,27],{"class":115},[67,1980,1981],{"class":1224},"key",[67,1983,1984],{"class":115},"],\n",[67,1986,1987],{"class":69,"line":1268},[67,1988,1318],{"class":115},[15,1990,1991,1992,27],{},"You can run this pipeline with ",[64,1993,1994],{},"pw.run()",[1996,1997,1998],"style",{},"html pre.shiki code .saEQR, html code.shiki .saEQR{--shiki-default:#676E95;--shiki-default-font-style:italic}html pre.shiki code .sx098, html code.shiki .sx098{--shiki-default:#F78C6C}html pre.shiki code .s0W1g, html code.shiki .s0W1g{--shiki-default:#BABED8}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}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 .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .sJ14y, html code.shiki .sJ14y{--shiki-default:#C792EA}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}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}",{"title":62,"searchDepth":77,"depth":77,"links":2000},[2001,2004,2007,2009],{"id":223,"depth":77,"text":224,"children":2002},[2003],{"id":235,"depth":88,"text":236},{"id":633,"depth":77,"text":634,"children":2005},[2006],{"id":640,"depth":88,"text":641},{"id":850,"depth":77,"text":2008},"read(connection_string, table_name, schema, *, mode='streaming', schema_name='dbo', autocommit_duration_ms=1500, name=None, max_backlog_size=None, debug_data=None)",{"id":1482,"depth":77,"text":2010},"write(table, connection_string, table_name, *, schema_name='dbo', max_batch_size=None, init_mode='default', output_table_type='stream_of_changes', primary_key=None, name=None, sort_by=None)","This module is available when using one of the following licenses only: Pathway Scale, Pathway Enterprise.","md",{"sidebar":2014},"API","/developers/api-docs/pathway-io/mssql",{"title":5,"description":2011},{"loc":2015},"2.developers/5.API-docs/7.pathway-io/236.mssql","eL60NMyqUnhK0pnCDvsIacuUsehQzkYOFxZ-4ZgxPjg",[2021],{"title":2022,"path":2023,"stem":2024,"children":2025,"page":2043},"Developers","/developers","2.developers",[2026,2884,3192],{"title":2027,"path":2028,"stem":2029,"children":2030,"page":2043},"User Guide","/developers/user-guide","2.developers/4.user-guide",[2031,2086,2341,2462,2540,2656,2788,2804,2863],{"title":2032,"meta":2033,"icon":2034,"path":2035,"stem":2036,"children":2037,"page":2043},"Introduction",{"icon":2034},"heroicons:book-open","/developers/user-guide/introduction","2.developers/4.user-guide/10.introduction",[2038,2044,2049,2054,2059,2064,2069,2074,2079],{"title":2039,"path":2040,"stem":2041,"meta":2042},"Welcome","/developers/user-guide/introduction/welcome","2.developers/4.user-guide/10.introduction/10.welcome",{"heading":2043,"toc":2043},false,{"title":2045,"path":2046,"stem":2047,"meta":2048},"Installation","/developers/user-guide/introduction/installation","2.developers/4.user-guide/10.introduction/20.installation",{"heading":2043,"toc":2043},{"title":2050,"path":2051,"stem":2052,"meta":2053},"Overview","/developers/user-guide/introduction/pathway-overview","2.developers/4.user-guide/10.introduction/30.pathway-overview",{},{"title":2055,"path":2056,"stem":2057,"meta":2058},"Starting Examples","/developers/user-guide/introduction/first_realtime_app_with_pathway","2.developers/4.user-guide/10.introduction/40.first_realtime_app_with_pathway",{},{"title":2060,"path":2061,"stem":2062,"meta":2063},"Core Concepts","/developers/user-guide/introduction/concepts","2.developers/4.user-guide/10.introduction/50.concepts",{},{"title":2065,"path":2066,"stem":2067,"meta":2068},"Why Pathway","/developers/user-guide/introduction/why-pathway","2.developers/4.user-guide/10.introduction/60.why-pathway",{},{"title":2070,"path":2071,"stem":2072,"meta":2073},"Licensing Guide","/developers/user-guide/introduction/licensing-guide","2.developers/4.user-guide/10.introduction/65.licensing-guide",{"heading":2043,"toc":2043},{"title":2075,"path":2076,"stem":2077,"meta":2078},"Streaming and Static Modes","/developers/user-guide/introduction/streaming-and-static-modes","2.developers/4.user-guide/10.introduction/70.streaming-and-static-modes",{},{"title":2080,"path":2081,"stem":2082,"meta":2083},"Batch Processing in Python","/developers/user-guide/introduction/batch-processing","2.developers/4.user-guide/10.introduction/80.batch-processing",{"thumbnail":2084,"thumbnailFit":2085},"/assets/content/documentation/pathway-batch.png","contain",{"title":2087,"path":2088,"stem":2089,"children":2090,"page":2043},"Connect","/developers/user-guide/connect","2.developers/4.user-guide/20.connect",[2091,2101,2106,2112,2117,2122,2135,2145,2150,2170],{"title":2092,"path":2093,"stem":2094,"meta":2095},"Basic Data Types","/developers/user-guide/connect/datatypes","2.developers/4.user-guide/20.connect/20.datatypes",{"date":2096,"tags":2097,"keywords":2099,"notebook_export_path":2100},"2024-01-26",[2098,238],"tutorial",[959,956],"notebooks/tutorials/basic_datatypes.ipynb",{"title":2102,"path":2103,"stem":2104,"meta":2105},"Connectors in Pathway","/developers/user-guide/connect/connectors-in-pathway","2.developers/4.user-guide/20.connect/30.connectors-in-pathway",{},{"title":2107,"path":2108,"stem":2109,"meta":2110},"Connectors list","/developers/user-guide/connect/pathway-connectors","2.developers/4.user-guide/20.connect/35.pathway-connectors",{"layout":2111,"aside":91,"toc":2043,"single":91},"default",{"title":2113,"path":2114,"stem":2115,"meta":2116},"Defining Schema","/developers/user-guide/connect/schema","2.developers/4.user-guide/20.connect/40.schema",{},{"title":2118,"path":2119,"stem":2120,"meta":2121},"Generate Data Streams with the demo Module","/developers/user-guide/connect/artificial-streams","2.developers/4.user-guide/20.connect/50.artificial-streams",{},{"title":2123,"path":2124,"stem":2125,"meta":2126},"Automatic Generation of Schema Class","/developers/user-guide/connect/schema-generation","2.developers/4.user-guide/20.connect/60.schema-generation",{"date":2127,"thumbnail":2128,"tags":2130,"keywords":2131,"notebook_export_path":2134},"2023-11-08",{"src":2129},"/assets/content/blog/th-custom-connectors.png",[2098,238],[956,959,2132,2133],"JSON","connectors","notebooks/tutorials/schema-generation.ipynb",{"title":2136,"path":2137,"stem":2138,"meta":2139},"Dealing with JSON Data Type","/developers/user-guide/connect/json_type","2.developers/4.user-guide/20.connect/70.json_type",{"date":2140,"thumbnail":2141,"tags":2142,"keywords":2143,"notebook_export_path":2144},"2023-12-22","/assets/content/blog/th-json.png",[2098,238],[2132,959,956],"notebooks/tutorials/json_type.ipynb",{"title":2146,"path":2147,"stem":2148,"meta":2149},"Switching from Batch to Streaming","/developers/user-guide/connect/switch-from-batch-to-streaming","2.developers/4.user-guide/20.connect/80.switch-from-batch-to-streaming",{},{"title":2151,"path":2152,"stem":2153,"meta":2154},"Live Web Scraping","/developers/user-guide/connect/python-web-scraping","2.developers/4.user-guide/20.connect/90.python-web-scraping",{"date":2155,"tags":2156,"keywords":2157,"tech_icons":2165,"thumbnail":2167,"deployment_tag":2168,"docker_github_link":2169},"2025-03-13",[2098,2133],[2158,2159,2160,2161,2162,2163,2164],"connector","scraping","WEB","Python","input","streaming","web scraping",[2166],"streamline:web","/assets/content/showcases/web_scraping/web-scraping-th.png",[1075],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/web-scraping",{"title":2171,"path":2172,"stem":2173,"children":2174,"page":2043},"Connectors","/developers/user-guide/connect/connectors","2.developers/4.user-guide/20.connect/99.connectors",[2175,2191,2203,2215,2224,2243,2254,2267,2275,2287,2297,2306,2318,2331],{"title":2176,"path":2177,"stem":2178,"meta":2179},"File System Connector","/developers/user-guide/connect/connectors/fs-connector","2.developers/4.user-guide/20.connect/99.connectors/05.fs-connector",{"date":2096,"tags":2180,"tech_icons":2181,"deployment_tag":2183,"keywords":2185,"notebook_export_path":2190},[2098,238],[2182],"lets-icons:file-fill",[2184,1075],"jupyter",[2158,2186,2187,2188,2162,2189,1308,2163],"file system","csv","json","output","notebooks/tutorials/fs_connector.ipynb",{"title":2192,"path":2193,"stem":2194,"meta":2195},"CSV connectors","/developers/user-guide/connect/connectors/csv_connectors","2.developers/4.user-guide/20.connect/99.connectors/10.csv_connectors",{"date":2196,"thumbnail":2197,"tags":2198,"keywords":2199,"tech_icons":2201},"2023-01-12","/assets/content/blog/th-csv-connectors.png",[2098,2133],[2158,2200,2162,2189,1308,2163],"CSV",[2202],"mdi:file-csv",{"title":2204,"path":2205,"stem":2206,"meta":2207},"Sending alerts to Slack","/developers/user-guide/connect/connectors/slack_send_alerts","2.developers/4.user-guide/20.connect/99.connectors/100.slack_send_alerts",{"date":2208,"tags":2209,"keywords":2210,"tech_icons":2213},"2024-02-16",[2098,2133],[2158,2211,2212,2189,2163],"Slack","alerts",[2214],"mdi:slack",{"title":2216,"path":2217,"stem":2218,"meta":2219},"Airbyte connectors","/developers/user-guide/connect/connectors/airbyte-connectors","2.developers/4.user-guide/20.connect/99.connectors/110.airbyte-connectors",{"tags":2220,"keywords":2221},[2098,2133],[2158,2222,2223,2162,1308,2163],"Airbyte","cloud",{"title":2225,"path":2226,"stem":2227,"meta":2228},"Using Pathway Debezium Connector for MongoDB","/developers/user-guide/connect/connectors/mongodb-debezium","2.developers/4.user-guide/20.connect/99.connectors/115.mongodb-debezium",{"date":2229,"tags":2230,"keywords":2231,"tech_icons":2239,"deployment_tag":2241,"docker_github_link":2242,"hideInConnectorList":91},"2024-10-30",[2098,2133],[2158,2232,2233,2234,2235,2236,2237,2238,2162,2189,2163],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[2240],"material-symbols-light:database",[1075],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/debezium-mongodb-example",{"title":2244,"path":2245,"stem":2246,"meta":2247},"JSON Lines connectors","/developers/user-guide/connect/connectors/jsonlines-connector","2.developers/4.user-guide/20.connect/99.connectors/15.jsonlines-connector",{"date":2248,"tags":2249,"keywords":2250,"tech_icons":2252},"2024-02-20",[2098,2133],[2158,2251,2132,2162,2189,1308,2163],"JSON Lines",[2253],"lets-icons:json",{"title":2255,"path":2256,"stem":2257,"meta":2258},"Database connectors","/developers/user-guide/connect/connectors/database-connectors","2.developers/4.user-guide/20.connect/99.connectors/20.database-connectors",{"date":2259,"thumbnail":2260,"tags":2261,"keywords":2262,"tech_icons":2264,"deployment_tag":2265,"docker_github_link":2266},"2023-01-19","/assets/content/blog/th-database-connectors.png",[2098,2133],[2158,2232,2263,2234,2235,2236,2237,2238,2162,2189,2163],"PostgreSQL",[2240],[1075],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/debezium-postgres-example",{"title":2268,"path":2269,"stem":2270,"meta":2271},"Custom Python connectors","/developers/user-guide/connect/connectors/custom-python-connectors","2.developers/4.user-guide/20.connect/99.connectors/30.custom-python-connectors",{"date":2272,"thumbnail":2129,"tags":2273,"keywords":2274},"2023-04-13",[2098,2133],[2158,2161,2162,2163],{"title":2276,"path":2277,"stem":2278,"meta":2279},"Kafka connectors","/developers/user-guide/connect/connectors/kafka_connectors","2.developers/4.user-guide/20.connect/99.connectors/30.kafka_connectors",{"date":2280,"thumbnail":2281,"tags":2282,"tech_icons":2283,"deployment_tag":2285,"keywords":2286},"2023-01-15","/assets/content/blog/th-kafka-connectors.png",[2098,2133],[2284],"mdi:apache-kafka",[1075],[2158,2236,2238,2162,2189,2163],{"title":2288,"path":2289,"stem":2290,"meta":2291},"NATS connectors","/developers/user-guide/connect/connectors/nats-connectors","2.developers/4.user-guide/20.connect/99.connectors/33.nats-connectors",{"date":2292,"tags":2293,"deployment_tag":2294,"keywords":2295},"2024-12-06",[2098,2133],[1075],[2158,2296,2238,2162,2189,2163],"NATS",{"title":2298,"path":2299,"stem":2300,"meta":2301},"Python output connectors","/developers/user-guide/connect/connectors/python-output-connectors","2.developers/4.user-guide/20.connect/99.connectors/35.python-output-connectors",{"date":2302,"thumbnail":2303,"tags":2304,"keywords":2305},"2023-08-31","/assets/content/blog/th-output-connector.png",[2098,2133],[2158,2161,2189,2163],{"title":2307,"path":2308,"stem":2309,"meta":2310},"Google Drive connector","/developers/user-guide/connect/connectors/gdrive-connector","2.developers/4.user-guide/20.connect/99.connectors/70.gdrive-connector",{"date":2311,"thumbnail":2312,"tags":2313,"keywords":2314,"tech_icons":2316},"2023-12-14","/assets/content/blog/th-gdrive-connector.png",[2098,2133],[2158,2315,2223,2162,1308,2163],"Google Drive",[2317],"simple-icons:googledrive",{"title":2319,"path":2320,"stem":2321,"meta":2322},"Switching from Kafka to Redpanda","/developers/user-guide/connect/connectors/switching-to-redpanda","2.developers/4.user-guide/20.connect/99.connectors/80.switching-to-redpanda",{"date":2323,"thumbnail":2324,"tags":2325,"keywords":2326,"deployment_tag":2328,"tech_icons":2329,"docker_github_link":2330,"hideInConnectorList":91},"2023-03-24","/assets/content/tutorials/redpanda/th-Kafka_vs_Redpanda.png",[2098,2133],[2158,2327,2236,2237,2238,2162,2189,2163],"Redpanda",[1075],[2284],"https://github.com/pathwaycom/pathway/tree/main/examples/projects/best-movies-example/redpanda-version",{"title":2332,"path":2333,"stem":2334,"meta":2335},"Custom WebSockets connectors","/developers/user-guide/connect/connectors/websockets-connectors","2.developers/4.user-guide/20.connect/99.connectors/90.websockets-connectors",{"date":2336,"tags":2337,"keywords":2338,"tech_icons":2340},"2023-01-24",[2098,2133],[2158,2339,2161,2162,2189,2163],"WebSockets",[2166],{"title":2342,"meta":2343,"path":2344,"stem":2345,"children":2346,"page":2043},"Transform",{},"/developers/user-guide/data-transformation","2.developers/4.user-guide/30.data-transformation",[2347,2352,2366,2372,2378,2391,2407,2428,2444,2449],{"title":2348,"path":2349,"stem":2350,"meta":2351},"Table Operations Overview","/developers/user-guide/data-transformation/table-operations","2.developers/4.user-guide/30.data-transformation/10.table-operations",{},{"title":2353,"path":2354,"stem":2355,"meta":2356},"Asynchronous Transformations","/developers/user-guide/data-transformation/asynchronous-transformations","2.developers/4.user-guide/30.data-transformation/100.asynchronous-transformations",{"date":2248,"thumbnail":62,"tags":2357,"keywords":2359,"notebook_export_path":2365},[2098,2358],"engineering",[1120,2360,2361,2362,2363,2364],"function","asynchronous","transformation","query","AsyncTransformer","notebooks/tutorials/asynctransformer.ipynb",{"title":2367,"path":2368,"stem":2369,"meta":2370},"Simple Join","/developers/user-guide/data-transformation/join-manual","2.developers/4.user-guide/30.data-transformation/20.join-manual",{"notebook_export_path":2371},"notebooks/tutorials/join_manual.ipynb",{"title":2373,"path":2374,"stem":2375,"meta":2376},"Groupby Reduce","/developers/user-guide/data-transformation/groupby-reduce-manual","2.developers/4.user-guide/30.data-transformation/30.groupby-reduce-manual",{"notebook_export_path":2377},"notebooks/tutorials/groupby_reduce_manual.ipynb",{"title":2379,"path":2380,"stem":2381,"meta":2382},"Writing Stateful Reducers","/developers/user-guide/data-transformation/custom-reducers","2.developers/4.user-guide/30.data-transformation/40.custom-reducers",{"date":2383,"thumbnail":2141,"tags":2384,"keywords":2385,"notebook_export_path":2390},"2024-01-17",[2098],[2386,2387,2388,2389],"reducers","aggregate","sumofsquares","median","notebooks/tutorials/custom_reducers.ipynb",{"title":2392,"path":2393,"stem":2394,"meta":2395},"Iterative Computations","/developers/user-guide/data-transformation/iterate","2.developers/4.user-guide/30.data-transformation/50.iterate",{"date":2396,"thumbnail":62,"tags":2397,"keywords":2398,"notebook_export_path":2406},"2023-12-28",[2098,2358],[2399,2400,2401,2402,2403,2404,2405],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks/tutorials/iterate.ipynb",{"title":2408,"path":2409,"stem":2410,"children":2411,"meta":2425},"Indexes in Pathway","/developers/user-guide/data-transformation/indexes-in-pathway","2.developers/4.user-guide/30.data-transformation/60.indexes-in-pathway",[2412],{"title":2408,"path":2409,"stem":2410,"meta":2413},{"date":2414,"thumbnail":2415,"tags":2416,"keywords":2417,"notebook_export_path":2424},"2023-11-15","/assets/content/blog/th-computing-pagerank.png",[2098,2358],[2418,2419,2420,2421,2422,2423],"index","indexing","join","asof join","asof_now","KNN","notebooks/tutorials/indexes.ipynb",{"date":2414,"thumbnail":2415,"tags":2426,"keywords":2427,"notebook_export_path":2424},[2098,2358],[2418,2419,2420,2421,2422,2423],{"title":2429,"path":2430,"stem":2431,"children":2432,"meta":2441},"Indexing from 'groupby' and Single-row Tables","/developers/user-guide/data-transformation/indexing-grouped-tables","2.developers/4.user-guide/30.data-transformation/70.indexing-grouped-tables",[2433],{"title":2429,"path":2430,"stem":2431,"meta":2434},{"date":2435,"thumbnail":2415,"tags":2436,"keywords":2437},"2023-03-31",[2098,238],[2438,2439,2440],"groupby","ix_ref","single-row table",{"date":2435,"thumbnail":2415,"tags":2442,"keywords":2443},[2098,238],[2438,2439,2440],{"title":2445,"path":2446,"stem":2447,"meta":2448},"SQL API","/developers/user-guide/data-transformation/sql","2.developers/4.user-guide/30.data-transformation/80.sql",{"redirection":91},{"title":2450,"path":2451,"stem":2452,"meta":2453},"User-defined Functions","/developers/user-guide/data-transformation/user-defined-functions","2.developers/4.user-guide/30.data-transformation/90.user-defined-functions",{"date":2454,"thumbnail":62,"tags":2455,"keywords":2456,"notebook_export_path":2461},"2024-02-21",[2098,2358],[1120,2457,2360,2458,2362,2459,2460],"udf","apply","cache","timeout","notebooks/tutorials/udf.ipynb",{"title":2463,"path":2464,"stem":2465,"children":2466,"page":2043},"Temporal Data","/developers/user-guide/temporal-data","2.developers/4.user-guide/40.temporal-data",[2467,2473,2478,2493,2505,2517,2531],{"title":2468,"path":2469,"stem":2470,"meta":2471},"Windowby Reduce","/developers/user-guide/temporal-data/windows-manual","2.developers/4.user-guide/40.temporal-data/10.windows-manual",{"notebook_export_path":2472},"notebooks/tutorials/windowby_manual.ipynb",{"title":2474,"path":2475,"stem":2476,"meta":2477},"Late Data and Cutoffs","/developers/user-guide/temporal-data/behaviors","2.developers/4.user-guide/40.temporal-data/20.behaviors",{},{"title":2479,"path":2480,"stem":2481,"meta":2482},"Controlling Temporal Behavior of Windows","/developers/user-guide/temporal-data/windows_with_behaviors","2.developers/4.user-guide/40.temporal-data/30.windows_with_behaviors",{"date":2483,"thumbnail":2484,"keywords":2485,"notebook_export_path":2492},"2024-01-08","assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[2486,2487,2488,2489,2490,2491],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks/tutorials/windows_temporal_behavior.ipynb",{"title":2494,"path":2495,"stem":2496,"meta":2497},"ASOF Join","/developers/user-guide/temporal-data/asof-join","2.developers/4.user-guide/40.temporal-data/40.asof-join",{"date":2498,"thumbnail":2499,"tags":2500,"keywords":2501,"notebook_export_path":2504},"2023-05-24","/assets/content/tutorials/finance_ts_asof_join/asof-join-tutorial-th.png",[2098,2358],[2421,2502,2503],"stock prices","financial data analysis","notebooks/tutorials/asof_join.ipynb",{"title":2506,"path":2507,"stem":2508,"meta":2509},"Interval Join","/developers/user-guide/temporal-data/interval-join","2.developers/4.user-guide/40.temporal-data/50.interval-join",{"date":2510,"thumbnail":2511,"tags":2512,"keywords":2513,"notebook_export_path":2516},"2023-05-22","assets/content/tutorials/fleet_eta_interval_join/fleet-eta-interval-join-th.png",[2098,2358],[2514,2515],"interval join","ETA","notebooks/tutorials/interval_join.ipynb",{"title":2518,"path":2519,"stem":2520,"meta":2521},"Window Join","/developers/user-guide/temporal-data/window-join","2.developers/4.user-guide/40.temporal-data/60.window-join",{"date":2522,"thumbnail":2523,"tags":2524,"keywords":2525,"notebook_export_path":2530},"2023-06-14","/assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[2098,2358],[2526,2527,2528,2529],"window","behavior analysis","clickstream","conversion rate","notebooks/tutorials/window_join.ipynb",{"title":2532,"path":2533,"stem":2534,"meta":2535},"Controlling Temporal Behavior of Interval Join","/developers/user-guide/temporal-data/temporal_behavior","2.developers/4.user-guide/40.temporal-data/70.temporal_behavior",{"date":2536,"thumbnail":2511,"tags":2537,"keywords":2538,"notebook_export_path":2539},"2023-11-28",[2098,2358],[2514,2487,2488,2489,2490,2491],"notebooks/tutorials/interval_join_temporal_behavior.ipynb",{"title":2541,"meta":2542,"path":2543,"stem":2544,"children":2545,"page":2043},"LLM tooling",{},"/developers/user-guide/llm-xpack","2.developers/4.user-guide/50.llm-xpack",[2546,2558,2567,2582,2593,2605,2617,2627,2637,2647],{"title":2547,"path":2548,"stem":2549,"meta":2550},"Introduction to the LLM xpack","/developers/user-guide/llm-xpack/overview","2.developers/4.user-guide/50.llm-xpack/10.overview",{"date":2551,"thumbnail":62,"tags":2552,"keywords":2554},"2024-02-14",[2098,2553],"LLM",[2553,2555,2556,2557],"GPT","OpenAI","Gemini",{"title":2559,"path":2560,"stem":2561,"meta":2562},"Create your own RAG","/developers/user-guide/llm-xpack/llm-app-pathway","2.developers/4.user-guide/50.llm-xpack/20.llm-app-pathway",{"date":2563,"thumbnail":62,"tags":2564,"keywords":2566},"2025-03-28",[2098,2553,2565],"RAG",[2553,2555,2556,2419],{"title":2568,"path":2569,"stem":2570,"children":2571,"meta":2579},"Document Indexing","/developers/user-guide/llm-xpack/docs-indexing","2.developers/4.user-guide/50.llm-xpack/30.docs-indexing",[2572],{"title":2568,"path":2569,"stem":2570,"meta":2573},{"date":2574,"thumbnail":62,"tags":2575,"keywords":2578},"2025-01-13",[2098,2419,2576,2577],"document storage","retrieval",[2553,2555,2556,2557],{"date":2574,"thumbnail":62,"tags":2580,"keywords":2581},[2098,2419,2576,2577],[2553,2555,2556,2557],{"title":2583,"path":2584,"stem":2585,"meta":2586},"Pathway MCP Server","/developers/user-guide/llm-xpack/pathway_mcp_server","2.developers/4.user-guide/50.llm-xpack/40.pathway_mcp_server",{"date":2587,"thumbnail":62,"tags":2588,"keywords":2589},"2025-08-01",[2098,2358],[2590,2591,2014,2592],"MCP","MCP server","protocol",{"title":2594,"path":2595,"stem":2596,"meta":2597},"Claude Desktop","/developers/user-guide/llm-xpack/pathway-mcp-claude-desktop","2.developers/4.user-guide/50.llm-xpack/41.pathway-mcp-claude-desktop",{"date":2598,"thumbnail":62,"tags":2599,"keywords":2601},"2025-08-19",[2098,2358,2600],"claude",[2590,2594,2602,2603,2604],"real-time data","document store","statistics",{"title":2606,"path":2607,"stem":2608,"meta":2609},"Parsers","/developers/user-guide/llm-xpack/parsers","2.developers/4.user-guide/50.llm-xpack/50.parsers",{"date":2610,"tags":2611,"keywords":2612},"2024-06-04",[2098,2553],[2553,2613,2614,2615,2616],"unstructured","docling","parsers","ocr",{"title":2618,"path":2619,"stem":2620,"meta":2621},"Chunking text","/developers/user-guide/llm-xpack/splitters","2.developers/4.user-guide/50.llm-xpack/60.splitters",{"date":2622,"thumbnail":62,"tags":2623,"keywords":2626},"2025-02-04",[2624,2625],"splitters","chunking",[2615,2625],{"title":2628,"path":2629,"stem":2630,"meta":2631},"Embedders","/developers/user-guide/llm-xpack/embedders","2.developers/4.user-guide/50.llm-xpack/70.embedders",{"date":2622,"thumbnail":62,"tags":2632,"keywords":2634},[2098,2633],"embedder",[2553,2555,2556,2557,2635,2636],"LiteLLM","Embedder",{"title":2638,"path":2639,"stem":2640,"meta":2641},"LLM Chats","/developers/user-guide/llm-xpack/llm-chats","2.developers/4.user-guide/50.llm-xpack/80.llm-chats",{"date":2642,"thumbnail":62,"tags":2643,"keywords":2645},"2025-01-30",[2098,2553,2644,2638],"LLM Wrappers",[2553,2555,2556,2557,2635,2646],"Wrapper",{"title":2648,"path":2649,"stem":2650,"meta":2651},"Rerankers","/developers/user-guide/llm-xpack/rerankers","2.developers/4.user-guide/50.llm-xpack/90.rerankers",{"date":2622,"thumbnail":62,"tags":2652,"keywords":2654},[2098,2653],"reranker",[2553,2655],"Reranker",{"title":2657,"meta":2658,"path":2659,"stem":2660,"children":2661,"page":2043},"Deploy",{},"/developers/user-guide/deployment","2.developers/4.user-guide/60.deployment",[2662,2667,2672,2689,2705,2710,2715,2720,2727,2732,2737,2750,2762,2767,2778],{"title":2663,"path":2664,"stem":2665,"meta":2666},"Cloud Deployment of Pathway","/developers/user-guide/deployment/cloud-deployment","2.developers/4.user-guide/60.deployment/10.cloud-deployment",{},{"title":2668,"path":2669,"stem":2670,"meta":2671},"Deploy to GCP","/developers/user-guide/deployment/gcp-deploy","2.developers/4.user-guide/60.deployment/15.gcp-deploy",{},{"title":2673,"path":2674,"stem":2675,"meta":2676},"Deploy to AWS Cloud","/developers/user-guide/deployment/aws-fargate-deploy","2.developers/4.user-guide/60.deployment/20.aws-fargate-deploy",{"date":2677,"tags":2678,"thumbnail":2681,"keywords":2683,"docker_github_link":2688,"deployButtons":2043},"2024-08-16",[2679,2680],"showcase","data-pipeline",{"src":2682},"/assets/content/documentation/aws/aws-fargate-overview-th.png",[2684,2685,2686,2238,2687],"AWS","Fargate","cloud deployment","AWS Fargate","https://github.com/pathwaycom/pathway/tree/main/examples/projects/aws-fargate-deploy",{"title":2690,"path":2691,"stem":2692,"meta":2693},"Deploy to Azure","/developers/user-guide/deployment/azure-aci-deploy","2.developers/4.user-guide/60.deployment/25.azure-aci-deploy",{"date":2694,"tags":2695,"thumbnail":2696,"keywords":2698,"docker_github_link":2704,"deployButtons":2043},"2024-11-20",[2679,2680],{"src":2697,"contain":91},"/assets/content/documentation/azure/azure-aci-overview-th.png",[2699,2700,2686,2238,2701,2702,2703],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https://github.com/pathwaycom/pathway/tree/main/examples/projects/azure-aci-deploy",{"title":2706,"path":2707,"stem":2708,"meta":2709},"Deploy with Render","/developers/user-guide/deployment/render-deploy","2.developers/4.user-guide/60.deployment/30.render-deploy",{},{"title":2711,"path":2712,"stem":2713,"meta":2714},"Deploy to Nebius AI Cloud","/developers/user-guide/deployment/nebius-deploy","2.developers/4.user-guide/60.deployment/32.nebius-deploy",{},{"title":2716,"path":2717,"stem":2718,"meta":2719},"Notebook-to-Docker Conversion","/developers/user-guide/deployment/jupyter-docker","2.developers/4.user-guide/60.deployment/35.jupyter-docker",{},{"title":2721,"path":2722,"stem":2723,"meta":2724},"Tutorial: From Jupyter to Deploy","/developers/user-guide/deployment/from-jupyter-to-deploy","2.developers/4.user-guide/60.deployment/40.from-jupyter-to-deploy",{"date":2725,"project_github_link":2726},"2023-11-29","https://github.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy",{"title":2728,"path":2729,"stem":2730,"meta":2731},"CI/CD","/developers/user-guide/deployment/integration","2.developers/4.user-guide/60.deployment/45.integration",{},{"title":2733,"path":2734,"stem":2735,"meta":2736},"Docker Deployment of Pathway","/developers/user-guide/deployment/docker-deployment","2.developers/4.user-guide/60.deployment/5.docker-deployment",{},{"title":2738,"path":2739,"stem":2740,"meta":2741},"Monitoring Pathway Instance","/developers/user-guide/deployment/pathway-monitoring","2.developers/4.user-guide/60.deployment/50.pathway-monitoring",{"date":2742,"thumbnail":2743,"tags":2744,"keywords":2745},"2024-05-27","/assets/content/blog/th-prometheus.png",[2098,2358],[2746,2747,2748,2749],"monitoring","OpenTelemetry","Grafana","metrics",{"title":2751,"path":2752,"stem":2753,"meta":2754},"Pathway Web Dashboard","/developers/user-guide/deployment/web-dashboard","2.developers/4.user-guide/60.deployment/52.web-dashboard",{"date":2755,"tags":2756,"keywords":2757},"2026-01-13",[2098,2358],[2758,2759,2746,2760,2761,2749],"Web Dashboard","UI","graph","charts",{"title":2763,"path":2764,"stem":2765,"meta":2766},"Persistence in Pathway","/developers/user-guide/deployment/persistence","2.developers/4.user-guide/60.deployment/55.persistence",{},{"title":2768,"path":2769,"stem":2770,"meta":2771},"Persistence in Pathway: How to Resume the Interrupted Computation","/developers/user-guide/deployment/persistence_recovery","2.developers/4.user-guide/60.deployment/60.persistence_recovery",{"date":2772,"thumbnail":62,"tags":2773,"keywords":2775},"2023-11-02",[2098,2358,2774],"dataflow management",[2776,2777],"persistence","recovery",{"title":2779,"path":2780,"stem":2781,"meta":2782},"Persistence in Pathway: How to Add New Data without Full Computation Restart","/developers/user-guide/deployment/persistence_restart_with_new_data","2.developers/4.user-guide/60.deployment/65.persistence_restart_with_new_data",{"date":2783,"thumbnail":62,"tags":2784,"keywords":2785},"2023-11-14",[2098,2358,2774],[2776,2786,2787],"optimization","restart",{"title":2789,"path":2790,"stem":2791,"children":2792,"page":2043},"Migrating","/developers/user-guide/migrating","2.developers/4.user-guide/70.migrating",[2793,2799],{"title":2794,"path":2795,"stem":2796,"meta":2797},"Coming from Pandas","/developers/user-guide/migrating/migrate-from-pandas","2.developers/4.user-guide/70.migrating/10.migrate-from-pandas",{"notebook_export_path":2798},"notebooks/tutorials/from_pandas.ipynb",{"title":2800,"path":2801,"stem":2802,"meta":2803},"Pandas Cheat Sheet","/developers/user-guide/migrating/pandas-cheat-sheet","2.developers/4.user-guide/70.migrating/20.pandas-cheat-sheet",{},{"title":2805,"path":2806,"stem":2807,"children":2808,"page":2043},"Advanced","/developers/user-guide/advanced","2.developers/4.user-guide/80.advanced",[2809,2814,2824,2830,2843,2848,2853,2858],{"title":2810,"path":2811,"stem":2812,"meta":2813},"Architecture","/developers/user-guide/advanced/worker-architecture","2.developers/4.user-guide/80.advanced/10.worker-architecture",{},{"title":2815,"path":2816,"stem":2817,"meta":2818},"Setting up Cache in Asynchronous Transformations","/developers/user-guide/advanced/function_calls_caching","2.developers/4.user-guide/80.advanced/20.function_calls_caching",{"date":2819,"thumbnail":62,"tags":2820,"keywords":2821},"2023-11-30",[2098,2358,2774],[2776,2786,2822,2823],"async_transformer","caching",{"title":2825,"path":2826,"stem":2827,"meta":2828},"Data Model Consistency","/developers/user-guide/advanced/consistency","2.developers/4.user-guide/80.advanced/30.consistency",{"notebook_export_path":2829},"notebooks/tutorials/consistency.ipynb",{"title":2831,"path":2832,"stem":2833,"meta":2834},"Writing declarative over imperative pipelines","/developers/user-guide/advanced/declarative_vs_imperative","2.developers/4.user-guide/80.advanced/40.declarative_vs_imperative",{"date":2835,"thumbnail":62,"tags":2836,"keywords":2837,"notebook_export_path":2842},"2025-11-25",[2098,2358],[2838,2839,2840,2841,2399],"declarative","imperative","ordered","splitting","notebooks/tutorials/declarative_vs_imperative.ipynb",{"title":2844,"path":2845,"stem":2846,"meta":2847},"Best Practices","/developers/user-guide/advanced/best-practices","2.developers/4.user-guide/80.advanced/5.best-practices",{},{"title":2849,"path":2850,"stem":2851,"meta":2852},"How Pathway Connectors Work","/developers/user-guide/advanced/how_pathway_connectors_work","2.developers/4.user-guide/80.advanced/50.how_pathway_connectors_work",{},{"title":2854,"path":2855,"stem":2856,"meta":2857},"Dynamic Worker Scaling","/developers/user-guide/advanced/worker_count_scaling","2.developers/4.user-guide/80.advanced/60.worker_count_scaling",{},{"title":2859,"path":2860,"stem":2861,"meta":2862},"Running on Multiple Machines","/developers/user-guide/advanced/running_on_multiple_machines","2.developers/4.user-guide/80.advanced/70.running_on_multiple_machines",{},{"title":2864,"meta":2865,"path":2866,"stem":2867,"children":2868,"page":2043},"Help And Updates",{},"/developers/user-guide/development","2.developers/4.user-guide/90.development",[2869,2874,2879],{"title":2870,"path":2871,"stem":2872,"meta":2873},"Troubleshooting","/developers/user-guide/development/troubleshooting","2.developers/4.user-guide/90.development/10.troubleshooting",{},{"title":2875,"path":2876,"stem":2877,"meta":2878},"Changelog","/developers/user-guide/development/changelog","2.developers/4.user-guide/90.development/20.changelog",{"toc":2043},{"title":2880,"path":2881,"stem":2882,"meta":2883},"Get help","/developers/user-guide/development/get-help","2.developers/4.user-guide/90.development/30.get-help",{},{"title":2885,"meta":2886,"path":2887,"stem":2888,"children":2889,"page":2043},"API docs",{},"/developers/api-docs","2.developers/5.API-docs",[2890,2895,2900,2906,2911,2916,2921,2989,2994,2999,3004,3012,3182,3187],{"title":2891,"path":2892,"stem":2893,"meta":2894},"Pathway API","/developers/api-docs/pathway","2.developers/5.API-docs/1.pathway",{"sidebar":2014},{"title":2896,"path":2897,"stem":2898,"meta":2899},"pw.reducers","/developers/api-docs/reducers","2.developers/5.API-docs/10.reducers",{"sidebar":2014},{"title":2901,"path":2902,"stem":2903,"meta":2904},"pw.sql","/developers/api-docs/sql-api","2.developers/5.API-docs/11.SQL-API",{"notebook_export_path":2905},"notebooks/tutorials/sql_api.ipynb",{"title":2907,"path":2908,"stem":2909,"meta":2910},"pw.temporal","/developers/api-docs/temporal","2.developers/5.API-docs/12.temporal",{"sidebar":2014},{"title":2912,"path":2913,"stem":2914,"meta":2915},"pw.udfs","/developers/api-docs/udfs","2.developers/5.API-docs/13.udfs",{"sidebar":2014},{"title":2917,"path":2918,"stem":2919,"meta":2920},"pw.xpacks.connectors","/developers/api-docs/pathway-xpacks-sharepoint","2.developers/5.API-docs/14.pathway-xpacks-sharepoint",{"sidebar":2014},{"title":2922,"path":2923,"stem":2924,"children":2925,"meta":2988},"pw.xpacks.llm","/developers/api-docs/pathway-xpacks-llm","2.developers/5.API-docs/15.pathway-xpacks-llm/index",[2926,2928,2933,2938,2943,2948,2953,2958,2963,2968,2973,2978,2983],{"title":2922,"path":2923,"stem":2924,"meta":2927},{"sidebar":2014},{"title":2929,"path":2930,"stem":2931,"meta":2932},"pw.xpacks.llm.llms","/developers/api-docs/pathway-xpacks-llm/llms","2.developers/5.API-docs/15.pathway-xpacks-llm/1.llms",{"sidebar":2014},{"title":2934,"path":2935,"stem":2936,"meta":2937},"pw.xpacks.llm.servers","/developers/api-docs/pathway-xpacks-llm/servers","2.developers/5.API-docs/15.pathway-xpacks-llm/10.servers",{"sidebar":2014},{"title":2939,"path":2940,"stem":2941,"meta":2942},"pw.xpacks.llm.utils","/developers/api-docs/pathway-xpacks-llm/utils","2.developers/5.API-docs/15.pathway-xpacks-llm/11.utils",{"sidebar":2014},{"title":2944,"path":2945,"stem":2946,"meta":2947},"pw.xpacks.llm.mcp_server","/developers/api-docs/pathway-xpacks-llm/mcp_server","2.developers/5.API-docs/15.pathway-xpacks-llm/12.mcp_server",{"sidebar":2014},{"title":2949,"path":2950,"stem":2951,"meta":2952},"pw.xpacks.llm.embedders","/developers/api-docs/pathway-xpacks-llm/embedders","2.developers/5.API-docs/15.pathway-xpacks-llm/2.embedders",{"sidebar":2014},{"title":2954,"path":2955,"stem":2956,"meta":2957},"pw.xpacks.llm.parsers","/developers/api-docs/pathway-xpacks-llm/parsers","2.developers/5.API-docs/15.pathway-xpacks-llm/3.parsers",{"sidebar":2014},{"title":2959,"path":2960,"stem":2961,"meta":2962},"pw.xpacks.llm.splitters","/developers/api-docs/pathway-xpacks-llm/splitters","2.developers/5.API-docs/15.pathway-xpacks-llm/4.splitters",{"sidebar":2014},{"title":2964,"path":2965,"stem":2966,"meta":2967},"pw.xpacks.llm.vector_store","/developers/api-docs/pathway-xpacks-llm/vectorstore","2.developers/5.API-docs/15.pathway-xpacks-llm/5.vectorstore",{"sidebar":2014},{"title":2969,"path":2970,"stem":2971,"meta":2972},"pw.xpacks.llm.document_store","/developers/api-docs/pathway-xpacks-llm/document_store","2.developers/5.API-docs/15.pathway-xpacks-llm/6.document_store",{"sidebar":2014},{"title":2974,"path":2975,"stem":2976,"meta":2977},"pw.xpacks.llm.question_answering","/developers/api-docs/pathway-xpacks-llm/question_answering","2.developers/5.API-docs/15.pathway-xpacks-llm/7.question_answering",{"sidebar":2014},{"title":2979,"path":2980,"stem":2981,"meta":2982},"pw.xpacks.llm.prompts","/developers/api-docs/pathway-xpacks-llm/prompts","2.developers/5.API-docs/15.pathway-xpacks-llm/8.prompts",{"sidebar":2014},{"title":2984,"path":2985,"stem":2986,"meta":2987},"pw.xpacks.llm.rerankers","/developers/api-docs/pathway-xpacks-llm/rerankers","2.developers/5.API-docs/15.pathway-xpacks-llm/9.rerankers",{"sidebar":2014},{"sidebar":2014},{"title":2990,"path":2991,"stem":2992,"meta":2993},"pw.Table","/developers/api-docs/pathway-table","2.developers/5.API-docs/2.pathway-table",{"sidebar":2014},{"title":2995,"path":2996,"stem":2997,"meta":2998},"pw.debug","/developers/api-docs/debug","2.developers/5.API-docs/4.debug",{"sidebar":2014},{"title":3000,"path":3001,"stem":3002,"meta":3003},"pw.demo","/developers/api-docs/pathway-demo","2.developers/5.API-docs/5.pathway-demo",{"sidebar":2014},{"title":3005,"path":3006,"stem":3007,"children":3008,"meta":3011},"pw.indexing","/developers/api-docs/indexing","2.developers/5.API-docs/6.indexing",[3009],{"title":3005,"path":3006,"stem":3007,"meta":3010},{"sidebar":2014},{"sidebar":2014},{"title":3013,"path":3014,"stem":3015,"children":3016,"meta":3181},"pw.io","/developers/api-docs/pathway-io","2.developers/5.API-docs/7.pathway-io/index",[3017,3019,3024,3029,3034,3039,3044,3049,3054,3059,3064,3069,3074,3079,3084,3089,3094,3099,3104,3109,3111,3116,3121,3126,3131,3136,3141,3146,3151,3156,3161,3166,3171,3176],{"title":3013,"path":3014,"stem":3015,"meta":3018},{"sidebar":2014},{"title":3020,"path":3021,"stem":3022,"meta":3023},"pw.io.airbyte","/developers/api-docs/pathway-io/airbyte","2.developers/5.API-docs/7.pathway-io/110.airbyte",{"sidebar":2014},{"title":3025,"path":3026,"stem":3027,"meta":3028},"pw.io.bigquery","/developers/api-docs/pathway-io/bigquery","2.developers/5.API-docs/7.pathway-io/120.bigquery",{"sidebar":2014},{"title":3030,"path":3031,"stem":3032,"meta":3033},"pw.io.csv","/developers/api-docs/pathway-io/csv","2.developers/5.API-docs/7.pathway-io/130.csv",{"sidebar":2014},{"title":3035,"path":3036,"stem":3037,"meta":3038},"pw.io.debezium","/developers/api-docs/pathway-io/debezium","2.developers/5.API-docs/7.pathway-io/140.debezium",{"sidebar":2014},{"title":3040,"path":3041,"stem":3042,"meta":3043},"pw.io.deltalake","/developers/api-docs/pathway-io/deltalake","2.developers/5.API-docs/7.pathway-io/150.deltalake",{"sidebar":2014},{"title":3045,"path":3046,"stem":3047,"meta":3048},"pw.io.dynamodb","/developers/api-docs/pathway-io/dynamodb","2.developers/5.API-docs/7.pathway-io/155.dynamodb",{"sidebar":2014},{"title":3050,"path":3051,"stem":3052,"meta":3053},"pw.io.elasticsearch","/developers/api-docs/pathway-io/elasticsearch","2.developers/5.API-docs/7.pathway-io/160.elasticsearch",{"sidebar":2014},{"title":3055,"path":3056,"stem":3057,"meta":3058},"pw.io.fs","/developers/api-docs/pathway-io/fs","2.developers/5.API-docs/7.pathway-io/170.fs",{"sidebar":2014},{"title":3060,"path":3061,"stem":3062,"meta":3063},"pw.io.gdrive","/developers/api-docs/pathway-io/gdrive","2.developers/5.API-docs/7.pathway-io/180.gdrive",{"sidebar":2014},{"title":3065,"path":3066,"stem":3067,"meta":3068},"pw.io.http","/developers/api-docs/pathway-io/http","2.developers/5.API-docs/7.pathway-io/190.http",{"sidebar":2014},{"title":3070,"path":3071,"stem":3072,"meta":3073},"pw.io.iceberg","/developers/api-docs/pathway-io/iceberg","2.developers/5.API-docs/7.pathway-io/195.iceberg",{"sidebar":2014},{"title":3075,"path":3076,"stem":3077,"meta":3078},"pw.io.jsonlines","/developers/api-docs/pathway-io/jsonlines","2.developers/5.API-docs/7.pathway-io/200.jsonlines",{"sidebar":2014},{"title":3080,"path":3081,"stem":3082,"meta":3083},"pw.io.kafka","/developers/api-docs/pathway-io/kafka","2.developers/5.API-docs/7.pathway-io/210.kafka",{"sidebar":2014},{"title":3085,"path":3086,"stem":3087,"meta":3088},"pw.io.kinesis","/developers/api-docs/pathway-io/kinesis","2.developers/5.API-docs/7.pathway-io/215.kinesis",{"sidebar":2014},{"title":3090,"path":3091,"stem":3092,"meta":3093},"pw.io.logstash","/developers/api-docs/pathway-io/logstash","2.developers/5.API-docs/7.pathway-io/220.logstash",{"sidebar":2014},{"title":3095,"path":3096,"stem":3097,"meta":3098},"pw.io.milvus","/developers/api-docs/pathway-io/milvus","2.developers/5.API-docs/7.pathway-io/225.milvus",{"sidebar":2014},{"title":3100,"path":3101,"stem":3102,"meta":3103},"pw.io.minio","/developers/api-docs/pathway-io/minio","2.developers/5.API-docs/7.pathway-io/230.minio",{"sidebar":2014},{"title":3105,"path":3106,"stem":3107,"meta":3108},"pw.io.mongodb","/developers/api-docs/pathway-io/mongodb","2.developers/5.API-docs/7.pathway-io/235.mongodb",{"sidebar":2014},{"title":5,"path":2015,"stem":2018,"meta":3110},{"sidebar":2014},{"title":3112,"path":3113,"stem":3114,"meta":3115},"pw.io.mysql","/developers/api-docs/pathway-io/mysql","2.developers/5.API-docs/7.pathway-io/237.mysql",{"sidebar":2014},{"title":3117,"path":3118,"stem":3119,"meta":3120},"pw.io.nats","/developers/api-docs/pathway-io/nats","2.developers/5.API-docs/7.pathway-io/238.nats",{"sidebar":2014},{"title":3122,"path":3123,"stem":3124,"meta":3125},"pw.io.null","/developers/api-docs/pathway-io/null","2.developers/5.API-docs/7.pathway-io/240.null",{"sidebar":2014},{"title":3127,"path":3128,"stem":3129,"meta":3130},"pw.io.mqtt","/developers/api-docs/pathway-io/mqtt","2.developers/5.API-docs/7.pathway-io/245.mqtt",{"sidebar":2014},{"title":3132,"path":3133,"stem":3134,"meta":3135},"pw.io.plaintext","/developers/api-docs/pathway-io/plaintext","2.developers/5.API-docs/7.pathway-io/250.plaintext",{"sidebar":2014},{"title":3137,"path":3138,"stem":3139,"meta":3140},"pw.io.postgres","/developers/api-docs/pathway-io/postgres","2.developers/5.API-docs/7.pathway-io/260.postgres",{"sidebar":2014},{"title":3142,"path":3143,"stem":3144,"meta":3145},"pw.io.pubsub","/developers/api-docs/pathway-io/pubsub","2.developers/5.API-docs/7.pathway-io/270.pubsub",{"sidebar":2014},{"title":3147,"path":3148,"stem":3149,"meta":3150},"pw.io.pyfilesystem","/developers/api-docs/pathway-io/pyfilesystem","2.developers/5.API-docs/7.pathway-io/280.pyfilesystem",{"sidebar":2014},{"title":3152,"path":3153,"stem":3154,"meta":3155},"pw.io.python","/developers/api-docs/pathway-io/python","2.developers/5.API-docs/7.pathway-io/290.python",{"sidebar":2014},{"title":3157,"path":3158,"stem":3159,"meta":3160},"pw.io.questdb","/developers/api-docs/pathway-io/questdb","2.developers/5.API-docs/7.pathway-io/295.questdb",{"sidebar":2014},{"title":3162,"path":3163,"stem":3164,"meta":3165},"pw.io.redpanda","/developers/api-docs/pathway-io/redpanda","2.developers/5.API-docs/7.pathway-io/300.redpanda",{"sidebar":2014},{"title":3167,"path":3168,"stem":3169,"meta":3170},"pw.io.s3","/developers/api-docs/pathway-io/s3","2.developers/5.API-docs/7.pathway-io/310.s3",{"sidebar":2014},{"title":3172,"path":3173,"stem":3174,"meta":3175},"pw.io.slack","/developers/api-docs/pathway-io/slack","2.developers/5.API-docs/7.pathway-io/320.slack",{"sidebar":2014},{"title":3177,"path":3178,"stem":3179,"meta":3180},"pw.io.sqlite","/developers/api-docs/pathway-io/sqlite","2.developers/5.API-docs/7.pathway-io/330.sqlite",{"sidebar":2014},{"sidebar":2014},{"title":3183,"path":3184,"stem":3185,"meta":3186},"pw.ml","/developers/api-docs/ml","2.developers/5.API-docs/8.ML",{"sidebar":2014},{"title":3188,"path":3189,"stem":3190,"meta":3191},"pw.persistence","/developers/api-docs/persistence-api","2.developers/5.API-docs/9.persistence-api",{"sidebar":2014},{"title":3193,"path":3194,"stem":3195,"children":3196,"meta":3928},"Pathway Templates","/developers/templates","2.developers/7.templates/1.index",[3197,3199,3204,3209,3214,3218,3234,3273,3299,3726],{"title":3193,"path":3194,"stem":3195,"meta":3198},{"navTitle":2039,"layout":2111,"aside":91,"toc":2043,"single":91},{"title":3200,"path":3201,"stem":3202,"meta":3203},"Run a template","/developers/templates/run-a-template","2.developers/7.templates/20.run-a-template",{"heading":2043,"toc":2043},{"title":3205,"path":3206,"stem":3207,"meta":3208},"Customizing a RAG Template with YAML","/developers/templates/configure-yaml","2.developers/7.templates/30.configure-yaml",{"heading":2043},{"title":3210,"path":3211,"stem":3212,"meta":3213},"How to Use Your Own Components in YAML Configuration","/developers/templates/custom-components","2.developers/7.templates/35.custom-components",{"heading":2043},{"title":2070,"path":3215,"stem":3216,"meta":3217},"/developers/templates/licensing-guide","2.developers/7.templates/38.licensing-guide",{"heading":2043,"toc":2043},{"title":3219,"meta":3220,"path":3221,"stem":3222,"children":3223,"page":2043},"YAML Snippets",{},"/developers/templates/yaml-snippets","2.developers/7.templates/39.yaml-snippets",[3224,3229],{"title":3225,"path":3226,"stem":3227,"meta":3228},"Data Sources Examples","/developers/templates/yaml-snippets/data-sources-examples","2.developers/7.templates/39.yaml-snippets/10.data-sources-examples",{"heading":2043,"toc":91},{"title":3230,"path":3231,"stem":3232,"meta":3233},"RAG configuration Examples","/developers/templates/yaml-snippets/rag-configuration-examples","2.developers/7.templates/39.yaml-snippets/20.rag-configuration-examples",{"heading":2043,"toc":91},{"title":3235,"path":3236,"stem":3237,"children":3238,"page":2043},"Rag Customization","/developers/templates/rag-customization","2.developers/7.templates/40.rag-customization",[3239,3244,3249,3255,3261,3267],{"title":3240,"path":3241,"stem":3242,"meta":3243},"REST API","/developers/templates/rag-customization/rest-api","2.developers/7.templates/40.rag-customization/10.REST-API",{"heading":2043,"toc":2043},{"title":3245,"path":3246,"stem":3247,"meta":3248},"Customizing prompt","/developers/templates/rag-customization/custom-prompt","2.developers/7.templates/40.rag-customization/20.custom-prompt",{"heading":2043},{"title":2606,"path":3250,"stem":3251,"meta":3252},"/developers/templates/rag-customization/parsers","2.developers/7.templates/40.rag-customization/30.parsers",{"date":2610,"tags":3253,"keywords":3254},[2098,2553],[2553,2613,2614,2615,2616],{"title":2618,"path":3256,"stem":3257,"meta":3258},"/developers/templates/rag-customization/splitters","2.developers/7.templates/40.rag-customization/40.splitters",{"date":2622,"thumbnail":62,"tags":3259,"keywords":3260},[2624,2625],[2615,2625],{"title":2628,"path":3262,"stem":3263,"meta":3264},"/developers/templates/rag-customization/embedders","2.developers/7.templates/40.rag-customization/50.embedders",{"date":2622,"thumbnail":62,"tags":3265,"keywords":3266},[2098,2633],[2553,2555,2556,2557,2635,2636],{"title":2638,"path":3268,"stem":3269,"meta":3270},"/developers/templates/rag-customization/llm-chats","2.developers/7.templates/40.rag-customization/60.llm-chats",{"date":2642,"thumbnail":62,"tags":3271,"keywords":3272},[2098,2553,2644,2638],[2553,2555,2556,2557,2635,2646],{"title":2657,"path":3274,"stem":3275,"children":3276,"page":2043},"/developers/templates/deploy","2.developers/7.templates/60.deploy",[3277,3281,3285,3292],{"title":2663,"path":3278,"stem":3279,"meta":3280},"/developers/templates/deploy/cloud-deployment","2.developers/7.templates/60.deploy/10.cloud-deployment",{},{"title":2668,"path":3282,"stem":3283,"meta":3284},"/developers/templates/deploy/gcp-deploy","2.developers/7.templates/60.deploy/15.gcp-deploy",{},{"title":2673,"path":3286,"stem":3287,"meta":3288},"/developers/templates/deploy/aws-fargate-deploy","2.developers/7.templates/60.deploy/20.aws-fargate-deploy",{"date":2677,"tags":3289,"thumbnail":3290,"keywords":3291,"docker_github_link":2688,"deployButtons":2043},[2679,2680],{"src":2682},[2684,2685,2686,2238,2687],{"title":2690,"path":3293,"stem":3294,"meta":3295},"/developers/templates/deploy/azure-aci-deploy","2.developers/7.templates/60.deploy/25.azure-aci-deploy",{"date":2694,"tags":3296,"thumbnail":3297,"keywords":3298,"docker_github_link":2704,"deployButtons":2043},[2679,2680],{"src":2697,"contain":91},[2699,2700,2686,2238,2701,2702,2703],{"title":3300,"meta":3301,"path":3302,"stem":3303,"children":3304,"page":2043},"ETL Templates",{},"/developers/templates/etl","2.developers/7.templates/ETL",[3305,3319,3335,3354,3374,3385,3399,3410,3420,3435,3450,3464,3479,3497,3513,3527,3543,3559,3571,3584,3594,3606,3618,3632],{"title":3306,"path":3307,"stem":3308,"meta":3309},"EL Pipeline: Move your data around with Pathway","/developers/templates/etl/el-pipeline","2.developers/7.templates/ETL/10.el-pipeline",{"layout":3310,"date":3311,"tags":3312,"thumbnail":3313,"keywords":3315,"popular":91},"template","2025-05-22",[2679,2680],{"src":3314,"contain":91},"/assets/content/showcases/el-template/el-template-thumbnail.png",[3316,3317,3318,2236,2263,2238],"ETL","EL","YAML",{"title":3320,"path":3321,"stem":3322,"meta":3323},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","/developers/templates/etl/suspicious_activity_tumbling_window","2.developers/7.templates/ETL/10.suspicious_activity_tumbling_window",{"notebook_export_path":3324,"aside":91,"date":3325,"thumbnail":3326,"tags":3329,"keywords":3331,"layout":3310},"notebooks/tutorials/suspicious_user_activity.ipynb","2023-05-30",{"src":3327,"provider":3328},"/assets/blog/thumbnails/th-shield.png","s3",[2098,3330],"machine-learning",[2526,3332,3333,3334],"tumbling","alert","notebook",{"title":3336,"path":3337,"stem":3338,"meta":3339},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","/developers/templates/etl/gaussian_filtering_python","2.developers/7.templates/ETL/100.gaussian_filtering_python",{"notebook_export_path":3340,"aside":91,"date":3341,"layout":3310,"thumbnail":3342,"tags":3344,"related":3346,"keywords":3349},"notebooks/tutorials/gaussian-filtering-python.ipynb","2023-10-17",{"src":3343},"/assets/content/tutorials/time_series/thumbnail-gaussian.png",[2098,3345],"Time Series",[3347,3348],"/blog/signal-processing","/developers/templates/etl/upsampling",[3350,3351,2491,3352,3353,2526,3334],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":3355,"path":3356,"stem":3357,"meta":3358},"Computing the Option Greeks using Pathway and Databento","/developers/templates/etl/option-greeks","2.developers/7.templates/ETL/105.option-greeks",{"thumbnail":3359,"date":3361,"tags":3362,"keywords":3363,"notebook_export_path":3372,"docker_github_link":3373,"aside":91,"layout":3310},{"src":3360,"contain":91},"/assets/content/showcases/option-greeks/option-greeks.png","2024-08-06",[2098,2680],[3364,3365,3366,3367,3368,3369,3370,3371,3334],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks/tutorials/option-greeks.ipynb","https://github.com/pathwaycom/pathway/tree/main/examples/projects/option-greeks",{"title":3375,"path":3376,"stem":3377,"meta":3378},"Automating reconciliation of messy financial transaction logs using Pathway's real-time fuzzy join","/developers/templates/etl/fuzzy_join_chapter1","2.developers/7.templates/ETL/11.fuzzy_join_chapter1",{"notebook_export_path":3379,"aside":91,"date":3380,"tags":3381,"keywords":3382,"layout":3310},"notebooks/showcases/fuzzy_join_part1.ipynb","2022-10-18",[2098,2680],[3383,3384,2613,3334],"Fuzzy join","reconciliation",{"title":3386,"path":3348,"stem":3387,"meta":3388},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers/7.templates/ETL/110.upsampling",{"notebook_export_path":3389,"aside":91,"date":3390,"layout":3310,"thumbnail":3391,"tags":3393,"related":3394,"popular":91,"keywords":3395},"notebooks/tutorials/upsampling.ipynb","2023-10-18",{"src":3392},"/assets/content/tutorials/time_series/thumbnail-time-series.png",[2098,3345],[3347,3337],[3350,3396,2491,3397,3398,3353,2526,3334],"upsampling","resampling","interpolation",{"title":3400,"path":3401,"stem":3402,"meta":3403},"Interaction with a Feedback Loop.","/developers/templates/etl/fuzzy_join_chapter2","2.developers/7.templates/ETL/12.fuzzy_join_chapter2",{"notebook_export_path":3404,"aside":91,"date":3405,"thumbnail":3406,"tags":3408,"keywords":3409,"layout":3310},"notebooks/showcases/fuzzy_join_part2.ipynb","2022-10-19",{"src":3407,"contain":91},"/assets/content/showcases/fuzzy_join/reconciliation_chapter3_trim.png",[2098,2680],[3383,3384,2613,3334],{"title":3411,"path":3412,"stem":3413,"meta":3414},"Smart real-time monitoring application with alert deduplication","/developers/templates/etl/alerting-significant-changes","2.developers/7.templates/ETL/130.alerting-significant-changes",{"notebook_export_path":3415,"aside":91,"date":3416,"tags":3417,"keywords":3418,"layout":3310},"notebooks/tutorials/alert-deduplication.ipynb","2023-11-16",[2098,2680],[3333,3419,2746,3334],"deduplication",{"title":3421,"path":3422,"stem":3423,"meta":3424},"Kafka ETL: Processing event streams in Python","/developers/templates/etl/kafka-etl","2.developers/7.templates/ETL/140.kafka-etl",{"layout":3310,"date":3425,"tags":3426,"thumbnail":3427,"keywords":3429,"docker_github_link":3434,"popular":91},"2024-02-15",[2679,2680],{"src":3428,"contain":91},"/assets/content/showcases/ETL-Kafka/ETL-Kafka.png",[3316,2236,3430,3431,3432,3433,2238],"datetime","time zone","timezone","concat_reindex","https://github.com/pathwaycom/pathway/tree/main/examples/projects/kafka-ETL",{"title":3436,"path":3437,"stem":3438,"meta":3439},"Streaming ETL pipelines in Python with Airbyte and Pathway","/developers/templates/etl/etl-python-airbyte","2.developers/7.templates/ETL/150.etl-python-airbyte",{"layout":3310,"date":3440,"tags":3441,"thumbnail":3442,"keywords":3444},"2024-02-28",[2679,2680],{"src":3443},"/assets/content/showcases/airbyte/airbyte-diagram-th.png",[3445,3446,3447,3448,3449],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":3451,"path":3452,"stem":3453,"meta":3454},"Delta Lake ETL with Pathway for Spark Analytics","/developers/templates/etl/delta_lake_etl","2.developers/7.templates/ETL/175.delta_lake_etl",{"layout":3310,"date":3455,"tags":3456,"thumbnail":3457,"keywords":3459,"docker_github_link":3463},"2024-07-23",[2679,2680],{"src":3458,"contain":91},"/assets/content/showcases/deltalake/delta_lake_diagram_th.png",[3460,3461,3462,3448,3449,2238],"delta lake etl","spark delta lake","spark etl","https://github.com/pathwaycom/pathway/tree/main/examples/projects/spark-data-preparation",{"title":3465,"path":3466,"stem":3467,"meta":3468},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","/developers/templates/etl/kafka-alternative","2.developers/7.templates/ETL/180.kafka-alternative",{"layout":3310,"thumbnail":3469,"date":3471,"tags":3472,"keywords":3473},{"src":3470,"contain":91},"/assets/content/showcases/kafka-alternatives/kafka-alternatives-thumbnail.png","2024-08-27",[2679,2680],[3316,2236,3474,3475,3476,3432,3477,3478],"Pathway","MinIO","S3","Kafka-alternatives","Delta tables",{"title":3480,"path":3481,"stem":3482,"meta":3483},"Jupyter / Colab: visualizing and transforming live data streams in Python notebooks with Pathway","/developers/templates/etl/live_data_jupyter","2.developers/7.templates/ETL/2.live_data_jupyter",{"aside":91,"date":2725,"tags":3484,"keywords":3485,"notebook_export_path":3495,"docker_github_link":3496,"popular":91,"layout":3310},[2098,2680,2679],[3486,3487,3488,3489,3490,3491,3492,3493,3494,3334,2238],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks/showcases/live-data-jupyter.ipynb","https://github.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy/part4_deployment",{"title":3498,"path":3499,"stem":3500,"meta":3501},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway","/developers/templates/etl/twitter","2.developers/7.templates/ETL/2.twitter",{"aside":91,"layout":3310,"date":3502,"thumbnail":3503,"tags":3505,"keywords":3506,"docker_github_link":3512},"2022-10-31",{"src":3504},"/assets/content/blog/th-twitter.png",[2098,3330,2679],[3507,3508,3509,3510,3511,2613,2238],"Twitter","tweets","sentiment analysis","geolocation","influence","https://github.com/pathwaycom/pathway/tree/main/examples/projects/twitter",{"title":3514,"path":3515,"stem":3516,"meta":3517},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","/developers/templates/etl/event_stream_processing_time_between_occurrences","2.developers/7.templates/ETL/20.event_stream_processing_time_between_occurrences",{"aside":91,"date":3518,"layout":3310,"thumbnail":3519,"tags":3521,"keywords":3522},"2022-11-01",{"src":3520},"/assets/content/blog/th-time-between-events-in-a-multi-topic-event-stream.png",[2098,2680],[3523,3524,2235,3525,3526],"event stream","multi-topic","ordering","sort",{"title":3528,"path":3529,"stem":3530,"meta":3531},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","/developers/templates/etl/lsh_chapter1","2.developers/7.templates/ETL/3.lsh_chapter1",{"notebook_export_path":3532,"aside":91,"date":3533,"thumbnail":3534,"tags":3536,"keywords":3537,"layout":3310},"notebooks/showcases/lsh.ipynb","2022-10-25",{"src":3535},"/assets/content/blog/th-realtime-classification.png",[2098,3330],[3538,2423,3539,2418,3540,3541,3542,2613,3334],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":3544,"path":3545,"stem":3546,"meta":3547},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","/developers/templates/etl/user_pairs_fuzzy_join","2.developers/7.templates/ETL/30.user_pairs_fuzzy_join",{"aside":91,"date":3548,"thumbnail":3549,"tags":3551,"keywords":3552,"layout":3310},"2023-01-09",{"src":3550,"provider":3328},"/assets/blog/thumbnails/th-mining-hidden-user-pair-activity-with-fuzzy-join.png",[2098,2680],[3553,3333,3554,3555,3556,3557,3558],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":3560,"path":3561,"stem":3562,"meta":3563},"Pathway Logistics Application: Streamlined Insights for Real-Time Asset Management","/developers/templates/etl/logistics","2.developers/7.templates/ETL/4.logistics",{"aside":91,"layout":3310,"date":3502,"thumbnail":3564,"tags":3566,"enterprise":91,"keywords":3567},{"src":3565},"/assets/content/blog/th-logictics-app.png",[2098,3330],[3568,3569,3570],"Logistics","IoT","Dashboard",{"title":3572,"path":3573,"stem":3574,"meta":3575},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway","/developers/templates/etl/bellman_ford","2.developers/7.templates/ETL/40.bellman_ford",{"aside":91,"date":3576,"layout":3310,"thumbnail":3577,"tags":3579,"notebook_export_path":3580,"keywords":3581},"2022-11-03",{"src":3578,"provider":3328},"/assets/blog/thumbnails/th-bellman-ford.png",[2098,3330],"notebooks/tutorials/bellman_ford.ipynb",[2399,3582,3583,2760,3334],"fixed-point","shortest-path",{"title":3585,"path":3586,"stem":3587,"meta":3588},"Linear regression on a Kafka stream","/developers/templates/etl/linear_regression_with_kafka","2.developers/7.templates/ETL/5.linear_regression_with_kafka",{"aside":91,"layout":3310,"date":3589,"tags":3590,"keywords":3591,"docker_github_link":3593},"2022-12-23",[2098,2680],[3592,2236,1075],"linear regression","https://github.com/pathwaycom/pathway/tree/main/examples/projects/kafka-linear-regression",{"title":3595,"path":3596,"stem":3597,"meta":3598},"Real-Time PageRank on Dynamic Graphs with Pathway","/developers/templates/etl/pagerank","2.developers/7.templates/ETL/50.pagerank",{"notebook_export_path":3599,"aside":91,"date":3600,"thumbnail":3601,"tags":3603,"keywords":3604,"layout":3310},"notebooks/tutorials/pagerank.ipynb","2022-11-07",{"src":3602,"provider":3328},"/assets/blog/thumbnails/th-computing-pagerank.png",[2098,3330],[3605,2760,3334],"pagerank",{"title":3607,"path":3608,"stem":3609,"meta":3610},"Sensor Fusion in real-time: combining time series data with Pathway","/developers/templates/etl/combining_time_series","2.developers/7.templates/ETL/65.combining_time_series",{"aside":91,"date":3611,"thumbnail":3612,"tags":3613,"keywords":3614,"notebook_export_path":3617,"layout":3310},"2023-04-28",{"src":3392},[3345],[3615,3616,3398,2133,3334],"time series","multiple data sources","notebooks/tutorials/combining-time-series.ipynb",{"title":3619,"path":3620,"stem":3621,"meta":3622},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","/developers/templates/etl/realtime-log-monitoring","2.developers/7.templates/ETL/7.realtime-log-monitoring",{"aside":91,"layout":3310,"date":3623,"thumbnail":3624,"tags":3626,"keywords":3627,"docker_github_link":3631},"2023-02-27",{"src":3625,"contain":91},"/assets/content/tutorials/realtime_log_monitoring/meme.jpg",[2098,2680],[3628,3333,2236,3629,2211,3630,2238],"log monitoring","Filebeat","ElasticSearch","https://github.com/pathwaycom/pathway/tree/main/examples/projects/realtime-log-monitoring/filebeat-pathway-slack",{"title":3633,"path":3634,"stem":3635,"children":3636,"page":2043},"Readmes","/developers/templates/etl/_readmes","2.developers/7.templates/ETL/_readmes",[3637,3642,3647,3652,3657,3662,3667,3672,3677,3682,3686,3691,3696,3701,3706,3711,3716,3721],{"title":3638,"path":3639,"stem":3640,"meta":3641},"Azure ACI Deployment Example","/developers/templates/etl/_readmes/azure-aci-deploy","2.developers/7.templates/ETL/_readmes/azure-aci-deploy",{},{"title":3643,"path":3644,"stem":3645,"meta":3646},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","/developers/templates/etl/_readmes/benchmarks","2.developers/7.templates/ETL/_readmes/benchmarks",{},{"title":3648,"path":3649,"stem":3650,"meta":3651},"Best-rated movies examples","/developers/templates/etl/_readmes/best-movies-example","2.developers/7.templates/ETL/_readmes/best-movies-example",{},{"title":3653,"path":3654,"stem":3655,"meta":3656},"Make your LLM app sane again: Forgetting incorrect data in real time","/developers/templates/etl/_readmes/conf42","2.developers/7.templates/ETL/_readmes/conf42",{},{"title":3658,"path":3659,"stem":3660,"meta":3661},"Custom python connector example","/developers/templates/etl/_readmes/custom-python-connector-twitter","2.developers/7.templates/ETL/_readmes/custom-python-connector-twitter",{},{"title":3663,"path":3664,"stem":3665,"meta":3666},"Realtime monitoring of logs","/developers/templates/etl/_readmes/filebeat-pathway-slack","2.developers/7.templates/ETL/_readmes/filebeat-pathway-slack",{},{"title":3668,"path":3669,"stem":3670,"meta":3671},"Tutorial: From interactive data exploration to deployment","/developers/templates/etl/_readmes/from_jupyter_to_deploy","2.developers/7.templates/ETL/_readmes/from_jupyter_to_deploy",{},{"title":3673,"path":3674,"stem":3675,"meta":3676},"ETL with Kafka in/Kafka out","/developers/templates/etl/_readmes/kafka-etl","2.developers/7.templates/ETL/_readmes/kafka-ETL",{},{"title":3678,"path":3679,"stem":3680,"meta":3681},"Best-rated movies example - Kafka version","/developers/templates/etl/_readmes/kafka-version","2.developers/7.templates/ETL/_readmes/kafka-version",{},{"title":3663,"path":3683,"stem":3684,"meta":3685},"/developers/templates/etl/_readmes/logstash-pathway-elastic","2.developers/7.templates/ETL/_readmes/logstash-pathway-elastic",{},{"title":3687,"path":3688,"stem":3689,"meta":3690},"Pathway Monitoring using OpenTelemetry Collector and Grafana Cloud","/developers/templates/etl/_readmes/monitoring","2.developers/7.templates/ETL/_readmes/monitoring",{},{"title":3692,"path":3693,"stem":3694,"meta":3695},"Computing Option Greeks with Pathway and Databento.","/developers/templates/etl/_readmes/option-greeks","2.developers/7.templates/ETL/_readmes/option-greeks",{},{"title":3697,"path":3698,"stem":3699,"meta":3700},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway","/developers/templates/etl/_readmes/question-answering-rag","2.developers/7.templates/ETL/_readmes/question-answering-rag",{},{"title":3702,"path":3703,"stem":3704,"meta":3705},"Best-rated movies example - Redpanda version","/developers/templates/etl/_readmes/redpanda-version","2.developers/7.templates/ETL/_readmes/redpanda-version",{},{"title":3707,"path":3708,"stem":3709,"meta":3710},"Sample Pathway program for SharePoint connection testing","/developers/templates/etl/_readmes/sharepoint-test","2.developers/7.templates/ETL/_readmes/sharepoint-test",{},{"title":3712,"path":3713,"stem":3714,"meta":3715},"Data Preparation for Spark Analytics","/developers/templates/etl/_readmes/spark-data-preparation","2.developers/7.templates/ETL/_readmes/spark-data-preparation",{},{"title":3717,"path":3718,"stem":3719,"meta":3720},"Realtime Twitter Analysis App with Pathway","/developers/templates/etl/_readmes/twitter","2.developers/7.templates/ETL/_readmes/twitter",{},{"title":3722,"path":3723,"stem":3724,"meta":3725},"Web Scraping with Pathway","/developers/templates/etl/_readmes/web-scraping","2.developers/7.templates/ETL/_readmes/web-scraping",{},{"title":3727,"meta":3728,"path":3729,"stem":3730,"children":3731,"page":2043},"LLM-RAG Templates",{},"/developers/templates/rag","2.developers/7.templates/rag",[3732,3745,3760,3776,3789,3807,3817,3832,3842,3852,3863,3876],{"title":3733,"path":3734,"stem":3735,"meta":3736},"Question-Answering RAG App","/developers/templates/rag/demo-question-answering","2.developers/7.templates/rag/1000.demo-question-answering",{"redirection":3737,"thumbnail":3738,"layout":3310,"tags":3740,"date":2610,"keywords":3742,"docker_github_link":3737,"popular":91},"https://github.com/pathwaycom/llm-app/tree/main/templates/question_answering_rag",{"src":3739,"provider":3328},"/assets/blog/thumbnails/qna-th.png",[2679,3741],"ai-pipelines",[2553,2565,2555,2556,3743,2419,1075,3744],"vector store","yaml",{"title":3746,"path":3747,"stem":3748,"meta":3749},"Adaptive RAG App","/developers/templates/rag/template-adaptive-rag","2.developers/7.templates/rag/1001.template-adaptive-rag",{"thumbnail":3750,"tags":3752,"date":3753,"layout":3310,"keywords":3754,"docker_github_link":3759},{"src":3751,"contain":91},"/assets/content/blog/adaptive-rag-plots/visual-abstract.png",[2679,3741],"2024-03-29",[2553,2565,3755,3756,3757,3758,1075,3744],"Adaptive RAG","prompt engineering","prompt","explainability","https://github.com/pathwaycom/llm-app/tree/main/templates/adaptive_rag",{"title":3761,"path":3762,"stem":3763,"meta":3764},"Private RAG App with Mistral and Ollama","/developers/templates/rag/template-private-rag","2.developers/7.templates/rag/1002.template-private-rag",{"tags":3765,"date":3766,"thumbnail":3767,"layout":3310,"keywords":3769,"docker_github_link":3775},[2679,3741],"2024-04-22",{"src":3768,"contain":91},"/assets/content/blog/local-adaptive-rag/local_adaptive.png",[2553,2565,3755,3756,3758,3770,3771,3772,3773,3774,1075,3744],"mistral","ollama","private rag","local rag","ollama rag","https://github.com/pathwaycom/llm-app/tree/main/templates/private_rag",{"title":3777,"path":3778,"stem":3779,"meta":3780},"Multimodal RAG pipeline with GPT4o","/developers/templates/rag/template-multimodal-rag","2.developers/7.templates/rag/1003.template-multimodal-rag",{"tags":3781,"date":3782,"thumbnail":3783,"layout":3310,"keywords":3785,"docker_github_link":3788,"popular":91},[2679,3741],"2024-01-01",{"src":3784,"contain":91},"/assets/content/showcases/multimodal-RAG/multimodalRAG-blog-banner.png",[2553,2565,2555,2556,3786,3787,2613,1075,3744],"GPT-4o","multimodal RAG","https://github.com/pathwaycom/llm-app/tree/main/templates/multimodal_rag",{"title":3790,"path":3791,"stem":3792,"children":3793,"meta":3803},"Live Document Indexing (Vector Store / Retriever)","/developers/templates/rag/template-demo-document-indexing","2.developers/7.templates/rag/1008.template-demo-document-indexing",[3794],{"title":3790,"path":3791,"stem":3792,"meta":3795},{"thumbnail":3796,"tags":3798,"date":3782,"layout":3310,"keywords":3799,"docker_github_link":3802},{"src":3797,"provider":3328},"/assets/blog/thumbnails/live-document-indexing-th.png",[2679,3741],[2553,2565,2555,2556,3743,2419,3800,2315,3801,1075,3744],"SharePoint","Gdrive","https://github.com/pathwaycom/llm-app/tree/main/templates/document_indexing",{"thumbnail":3804,"tags":3805,"date":3782,"layout":3310,"keywords":3806,"docker_github_link":3802},{"src":3797,"provider":3328},[2679,3741],[2553,2565,2555,2556,3743,2419,3800,2315,3801,1075,3744],{"title":3808,"path":3809,"stem":3810,"meta":3811},"Alerting when answers change on Google Drive","/developers/templates/rag/drive-alert","2.developers/7.templates/rag/1009.drive-alert",{"tags":3812,"date":3813,"layout":3310,"keywords":3814,"docker_github_link":3816,"hide":91},[2679,3741],"2024-11-07",[2553,2565,2555,2556,3815,2419,2315,3801,1075],"slack","https://github.com/pathwaycom/llm-app/tree/main/templates/drive_alert",{"title":3818,"path":3819,"stem":3820,"meta":3821},"Slides AI Search App","/developers/templates/rag/template-slides-search","2.developers/7.templates/rag/1010.template-slides-search",{"thumbnail":3822,"tags":3824,"date":3825,"layout":3310,"keywords":3826,"docker_github_link":3831},{"src":3823,"provider":3328},"/assets/blog/thumbnails/slides-search-th.png",[2679,3741],"2024-11-14",[2553,2565,2555,2556,2315,3827,1075,3744,3828,3829,3830],"slides","multimodal","VLM","image-to-text","https://github.com/pathwaycom/llm-app/tree/main/templates/slides_ai_search",{"title":3833,"path":3834,"stem":3835,"meta":3836},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","/developers/templates/rag/adaptive-rag","2.developers/7.templates/rag/1015.adaptive-rag",{"aside":91,"thumbnail":3837,"tags":3838,"date":3839,"notebook_export_path":3840,"keywords":3841,"run_template":3747,"hide":91},{"src":3751,"contain":91},[2679,3741],"2024-03-28","notebooks/showcases/adaptive_rag_question_answering.ipynb",[2553,2565,3755,3756,3757,3758,3334,2238],{"title":3843,"path":3844,"stem":3845,"meta":3846},"Multimodal RAG for PDFs with Text, Images, and Charts","/developers/templates/rag/multimodal-rag","2.developers/7.templates/rag/120.multimodal-rag",{"aside":91,"thumbnail":3847,"date":3848,"tags":3849,"keywords":3850,"notebook_export_path":3851,"run_template":3778,"popular":91,"hide":91},{"src":3784,"contain":91},"2024-06-20",[2679,3741],[2553,2565,2555,2556,3786,3787,2613,3334,1075],"notebooks/showcases/multimodal-rag.ipynb",{"title":3853,"path":3854,"stem":3855,"meta":3856},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway","/developers/templates/rag/private-rag-ollama-mistral","2.developers/7.templates/rag/161.private-rag-ollama-mistral",{"aside":91,"thumbnail":3857,"tags":3858,"date":3859,"related":3860,"notebook_export_path":3861,"keywords":3862,"run_template":3762,"hide":91},{"src":3768,"contain":91},[2679,3741],"2024-04-23",[3834,3734],"notebooks/showcases/mistral_adaptive_rag_question_answering.ipynb",[2553,2565,3755,3756,3758,3770,3771,3772,3773,3774,3334,1075],{"title":3864,"path":3865,"stem":3866,"meta":3867},"Pathway + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","/developers/templates/rag/unstructured-to-structured","2.developers/7.templates/rag/5.unstructured-to-structured",{"aside":91,"layout":3310,"date":2536,"thumbnail":3868,"tags":3870,"keywords":3871,"docker_github_link":3875},{"src":3869,"contain":91},"/assets/content/showcases/llm-app/architecture_unst_to_st.png",[2679,3741],[2553,3872,2613,2263,2555,3873,3874,2132,2613,2238],"SQL","Entity extraction","Document parsing","https://github.com/pathwaycom/llm-app/tree/main/templates/unstructured_to_sql_on_the_fly",{"title":3633,"path":3877,"stem":3878,"children":3879,"page":2043},"/developers/templates/rag/_readmes","2.developers/7.templates/rag/_readmes",[3880,3885,3893,3898,3903,3908,3913,3918,3923],{"title":3881,"path":3882,"stem":3883,"meta":3884},"AdaptiveRag","/developers/templates/rag/_readmes/adaptive_rag","2.developers/7.templates/rag/_readmes/adaptive_rag",{},{"title":3886,"path":3887,"stem":3888,"children":3889,"meta":3892},"DocumentIndexing","/developers/templates/rag/_readmes/document_indexing","2.developers/7.templates/rag/_readmes/document_indexing",[3890],{"title":3886,"path":3887,"stem":3888,"meta":3891},{},{},{"title":3894,"path":3895,"stem":3896,"meta":3897},"DocumentStoreMcpServer","/developers/templates/rag/_readmes/document_store_mcp_server","2.developers/7.templates/rag/_readmes/document_store_mcp_server",{},{"title":3899,"path":3900,"stem":3901,"meta":3902},"Pathway + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","/developers/templates/rag/_readmes/drive_alert","2.developers/7.templates/rag/_readmes/drive_alert",{},{"title":3904,"path":3905,"stem":3906,"meta":3907},"MultimodalRag","/developers/templates/rag/_readmes/multimodal_rag","2.developers/7.templates/rag/_readmes/multimodal_rag",{},{"title":3909,"path":3910,"stem":3911,"meta":3912},"PrivateRag","/developers/templates/rag/_readmes/private_rag","2.developers/7.templates/rag/_readmes/private_rag",{},{"title":3914,"path":3915,"stem":3916,"meta":3917},"QuestionAnsweringRag","/developers/templates/rag/_readmes/question_answering_rag","2.developers/7.templates/rag/_readmes/question_answering_rag",{},{"title":3919,"path":3920,"stem":3921,"meta":3922},"SlidesAiSearch","/developers/templates/rag/_readmes/slides_ai_search","2.developers/7.templates/rag/_readmes/slides_ai_search",{},{"title":3924,"path":3925,"stem":3926,"meta":3927},"UnstructuredToSqlOnTheFly","/developers/templates/rag/_readmes/unstructured_to_sql_on_the_fly","2.developers/7.templates/rag/_readmes/unstructured_to_sql_on_the_fly",{},{"navTitle":2039,"layout":2111,"aside":91,"toc":2043,"single":91},{"id":4,"title":5,"author":6,"body":3930,"description":2011,"extension":2012,"meta":5506,"navigation":91,"path":2015,"seo":5507,"sitemap":5508,"stem":2018,"__hash__":2019},{"type":8,"value":3931,"toc":5496},[3932,3934,3940,3946,3950,4030,4036,4040,4044,4060,4062,4064,4068,4070,4370,4372,4374,4376,4560,4567,4574,4580,4584,4596,4602,4606,4608,4702,4704,4706,4742,4744,4898,4902,4972,4974,5052,5059,5068,5084,5086,5208,5210,5212,5248,5250,5302,5304,5382,5384,5490,5494],[11,3933,5],{"id":13},[15,3935,3936,21,3938,27],{},[18,3937,20],{},[23,3939,26],{"href":25},[15,3941,30,3942,34,3944,38],{},[18,3943,33],{},[18,3945,37],{},[15,3947,41,3948,45],{},[18,3949,44],{},[47,3951,3952,4026],{},[50,3953,3954,55,3956],{},[18,3955,54],{},[57,3957,3958],{"className":59,"code":60,"language":61,"meta":62,"style":62},[64,3959,3960,3964,3970,3974,3978,3984,4000,4016],{"__ignoreMap":62},[67,3961,3962],{"class":69,"line":70},[67,3963,74],{"class":73},[67,3965,3966,3968],{"class":69,"line":77},[67,3967,81],{"class":80},[67,3969,85],{"class":84},[67,3971,3972],{"class":69,"line":88},[67,3973,92],{"emptyLinePlaceholder":91},[67,3975,3976],{"class":69,"line":95},[67,3977,98],{"class":73},[67,3979,3980,3982],{"class":69,"line":101},[67,3981,81],{"class":80},[67,3983,106],{"class":84},[67,3985,3986,3988,3990,3992,3994,3996,3998],{"class":69,"line":109},[67,3987,112],{"class":84},[67,3989,116],{"class":115},[67,3991,120],{"class":119},[67,3993,123],{"class":115},[67,3995,126],{"class":119},[67,3997,123],{"class":115},[67,3999,131],{"class":84},[67,4001,4002,4004,4006,4008,4010,4012,4014],{"class":69,"line":134},[67,4003,137],{"class":84},[67,4005,116],{"class":115},[67,4007,120],{"class":119},[67,4009,123],{"class":115},[67,4011,146],{"class":119},[67,4013,123],{"class":115},[67,4015,131],{"class":84},[67,4017,4018,4020,4022,4024],{"class":69,"line":153},[67,4019,156],{"class":84},[67,4021,116],{"class":115},[67,4023,161],{"class":80},[67,4025,164],{"class":84},[50,4027,4028,170],{},[18,4029,169],{},[15,4031,4032,176,4034,180],{},[18,4033,175],{},[64,4035,179],{},[15,4037,4038,186],{},[18,4039,185],{},[15,4041,41,4042,45],{},[18,4043,191],{},[47,4045,4046,4054],{},[50,4047,4048,199,4050,34,4052,206],{},[18,4049,198],{},[64,4051,202],{},[64,4053,205],{},[50,4055,4056,212,4058,216],{},[18,4057,211],{},[64,4059,215],{},[15,4061,219],{},[221,4063,224],{"id":223},[15,4065,227,4066,231],{},[64,4067,230],{},[233,4069,236],{"id":235},[238,4071,4072,4080],{},[241,4073,4074],{},[244,4075,4076,4078],{},[247,4077,249],{},[247,4079,252],{},[254,4081,4082,4092,4102,4114,4126,4146,4158,4172,4184,4202,4216,4230,4242,4260,4274,4286,4298,4308,4322,4334,4344,4354],{},[244,4083,4084,4088],{},[259,4085,4086],{},[64,4087,263],{},[259,4089,4090],{},[64,4091,268],{},[244,4093,4094,4098],{},[259,4095,4096],{},[64,4097,275],{},[259,4099,4100],{},[64,4101,280],{},[244,4103,4104,4110],{},[259,4105,4106,288,4108],{},[64,4107,287],{},[64,4109,291],{},[259,4111,4112],{},[64,4113,280],{},[244,4115,4116,4122],{},[259,4117,4118,288,4120],{},[64,4119,302],{},[64,4121,305],{},[259,4123,4124],{},[64,4125,280],{},[244,4127,4128,4134],{},[259,4129,4130,288,4132],{},[64,4131,316],{},[64,4133,319],{},[259,4135,4136,324,4138,328,4140,332,4142,335,4144,338],{},[64,4137,280],{},[64,4139,327],{},[18,4141,331],{},[64,4143,327],{},[64,4145,316],{},[244,4147,4148,4154],{},[259,4149,4150,288,4152],{},[64,4151,345],{},[64,4153,348],{},[259,4155,4156],{},[64,4157,353],{},[244,4159,4160,4168],{},[259,4161,4162,288,4164,288,4166],{},[64,4163,360],{},[64,4165,363],{},[64,4167,366],{},[259,4169,4170],{},[64,4171,353],{},[244,4173,4174,4180],{},[259,4175,4176,288,4178],{},[64,4177,377],{},[64,4179,380],{},[259,4181,4182,385],{},[64,4183,353],{},[244,4185,4186,4198],{},[259,4187,4188,288,4190,288,4192,288,4194,288,4196],{},[64,4189,392],{},[64,4191,395],{},[64,4193,398],{},[64,4195,401],{},[64,4197,404],{},[259,4199,4200],{},[64,4201,409],{},[244,4203,4204,4210],{},[259,4205,4206,288,4208],{},[64,4207,392],{},[64,4209,395],{},[259,4211,4212,423,4214,426],{},[64,4213,422],{},[64,4215,422],{},[244,4217,4218,4224],{},[259,4219,4220,288,4222],{},[64,4221,392],{},[64,4223,395],{},[259,4225,4226,440,4228,443],{},[64,4227,439],{},[64,4229,439],{},[244,4231,4232,4236],{},[259,4233,4234],{},[64,4235,450],{},[259,4237,4238,288,4240,459],{},[64,4239,455],{},[64,4241,458],{},[244,4243,4244,4248],{},[259,4245,4246],{},[64,4247,450],{},[259,4249,4250,471,4252,475,4254,479,4256,34,4258,484],{},[64,4251,470],{},[64,4253,474],{},[64,4255,478],{},[64,4257,280],{},[64,4259,353],{},[244,4261,4262,4270],{},[259,4263,4264,288,4266,288,4268],{},[64,4265,491],{},[64,4267,494],{},[64,4269,497],{},[259,4271,4272],{},[64,4273,502],{},[244,4275,4276,4280],{},[259,4277,4278],{},[64,4279,509],{},[259,4281,4282,515,4284,443],{},[64,4283,514],{},[64,4285,514],{},[244,4287,4288,4292],{},[259,4289,4290],{},[64,4291,524],{},[259,4293,4294,529,4296,27],{},[64,4295,409],{},[64,4297,532],{},[244,4299,4300,4304],{},[259,4301,4302],{},[64,4303,539],{},[259,4305,4306,544],{},[64,4307,409],{},[244,4309,4310,4318],{},[259,4311,4312,288,4314,288,4316],{},[64,4313,551],{},[64,4315,554],{},[64,4317,557],{},[259,4319,4320],{},[64,4321,562],{},[244,4323,4324,4328],{},[259,4325,4326],{},[64,4327,569],{},[259,4329,4330,574,4332,578],{},[64,4331,562],{},[64,4333,577],{},[244,4335,4336,4340],{},[259,4337,4338],{},[64,4339,585],{},[259,4341,4342,591],{},[64,4343,590],{},[244,4345,4346,4350],{},[259,4347,4348],{},[64,4349,598],{},[259,4351,4352,603],{},[64,4353,327],{},[244,4355,4356,4358],{},[259,4357,608],{},[259,4359,611,4360,615,4362,619,4364,623,4366,627,4368,630],{},[64,4361,614],{},[64,4363,618],{},[64,4365,622],{},[18,4367,626],{},[64,4369,618],{},[221,4371,634],{"id":633},[15,4373,637],{},[233,4375,641],{"id":640},[238,4377,4378,4386],{},[241,4379,4380],{},[244,4381,4382,4384],{},[247,4383,650],{},[247,4385,653],{},[254,4387,4388,4398,4408,4418,4430,4442,4452,4462,4472,4482,4496,4508,4520,4532,4544],{},[244,4389,4390,4394],{},[259,4391,4392],{},[64,4393,268],{},[259,4395,4396],{},[64,4397,263],{},[244,4399,4400,4404],{},[259,4401,4402],{},[64,4403,280],{},[259,4405,4406],{},[64,4407,316],{},[244,4409,4410,4414],{},[259,4411,4412],{},[64,4413,353],{},[259,4415,4416],{},[64,4417,360],{},[244,4419,4420,4424],{},[259,4421,4422],{},[64,4423,409],{},[259,4425,4426,696,4428,700],{},[64,4427,450],{},[64,4429,699],{},[244,4431,4432,4436],{},[259,4433,4434],{},[64,4435,439],{},[259,4437,4438,711,4440,27],{},[64,4439,450],{},[64,4441,699],{},[244,4443,4444,4448],{},[259,4445,4446],{},[64,4447,502],{},[259,4449,4450],{},[64,4451,509],{},[244,4453,4454,4458],{},[259,4455,4456],{},[64,4457,422],{},[259,4459,4460,734],{},[64,4461,450],{},[244,4463,4464,4468],{},[259,4465,4466],{},[64,4467,562],{},[259,4469,4470,746],{},[64,4471,745],{},[244,4473,4474,4478],{},[259,4475,4476],{},[64,4477,590],{},[259,4479,4480,758],{},[64,4481,757],{},[244,4483,4484,4488],{},[259,4485,4486],{},[64,4487,327],{},[259,4489,4490,769,4492,772,4494,775],{},[64,4491,316],{},[18,4493,331],{},[64,4495,327],{},[244,4497,4498,4502],{},[259,4499,4500],{},[64,4501,514],{},[259,4503,4504,786,4506,775],{},[64,4505,509],{},[64,4507,514],{},[244,4509,4510,4514],{},[259,4511,4512],{},[64,4513,795],{},[259,4515,798,4516,801,4518,27],{},[64,4517,614],{},[64,4519,618],{},[244,4521,4522,4526],{},[259,4523,4524],{},[64,4525,458],{},[259,4527,4528,814,4530,775],{},[64,4529,450],{},[64,4531,458],{},[244,4533,4534,4538],{},[259,4535,4536],{},[64,4537,455],{},[259,4539,4540,827,4542,775],{},[64,4541,450],{},[64,4543,455],{},[244,4545,4546,4550],{},[259,4547,4548],{},[64,4549,470],{},[259,4551,4552,840,4554,475,4556,845,4558,775],{},[64,4553,450],{},[64,4555,474],{},[64,4557,478],{},[64,4559,470],{},[221,4561,4562,854,4564,860],{"id":850},[18,4563,853],{},[67,4565,859],{"className":4566},[858],[15,4568,4569,871],{},[23,4570,4572],{"className":4571,"href":867},[866],[67,4573,870],{},[15,4575,874,4576,878,4578,882],{},[64,4577,877],{},[64,4579,881],{},[15,4581,874,4582,888],{},[64,4583,887],{},[47,4585,4586,4588,4592],{},[50,4587,893],{},[50,4589,896,4590],{},[64,4591,899],{},[50,4593,902,4594],{},[64,4595,905],{},[15,4597,4598,911,4600,914],{},[18,4599,910],{},[64,4601,179],{},[15,4603,4604,919],{},[18,4605,185],{},[15,4607,922],{},[47,4609,4610,4694],{},[50,4611,4612,4614],{},[18,4613,929],{},[47,4615,4616,4624,4630,4640,4654,4664,4672,4680,4688],{},[50,4617,4618,937,4620,940,4622],{},[18,4619,936],{},[64,4621,409],{},[64,4623,943],{},[50,4625,4626,937,4628,951],{},[18,4627,948],{},[64,4629,409],{},[50,4631,4632,937,4634,960,4636,967],{},[18,4633,956],{},[64,4635,959],{},[23,4637,4638],{"href":963},[64,4639,966],{},[50,4641,4642,937,4644,960,4646,979,4648,983,4650,986,4652,989],{},[18,4643,972],{},[64,4645,975],{},[64,4647,978],{},[64,4649,982],{},[64,4651,887],{},[64,4653,877],{},[50,4655,4656,937,4658,997,4660,1000,4662,1004],{},[18,4657,994],{},[64,4659,409],{},[64,4661,614],{},[64,4663,1003],{},[50,4665,4666,937,4668,997,4670,1014],{},[18,4667,1009],{},[64,4669,280],{},[64,4671,614],{},[50,4673,4674,937,4676,997,4678,1024],{},[18,4675,1019],{},[64,4677,409],{},[64,4679,614],{},[50,4681,4682,937,4684,997,4686,1034],{},[18,4683,1029],{},[64,4685,280],{},[64,4687,614],{},[50,4689,4690,937,4692,1043],{},[18,4691,1039],{},[64,4693,1042],{},[50,4695,4696,4698,4700,1056],{},[18,4697,1048],{},[1050,4699],{},[1053,4701,1055],{},[15,4703,1059],{},[15,4705,1062],{},[57,4707,4708],{"className":1065,"code":1066,"language":1067,"meta":62,"style":62},[64,4709,4710,4734],{"__ignoreMap":62},[67,4711,4712,4714,4716,4718,4720,4722,4724,4726,4728,4730,4732],{"class":69,"line":70},[67,4713,1075],{"class":1074},[67,4715,1078],{"class":119},[67,4717,1081],{"class":119},[67,4719,1084],{"class":115},[67,4721,1087],{"class":119},[67,4723,123],{"class":115},[67,4725,1081],{"class":119},[67,4727,1084],{"class":115},[67,4729,1096],{"class":119},[67,4731,123],{"class":115},[67,4733,1101],{"class":84},[67,4735,4736,4738,4740],{"class":69,"line":77},[67,4737,1106],{"class":119},[67,4739,1109],{"class":119},[67,4741,1112],{"class":119},[15,4743,1115],{},[57,4745,4746],{"className":1118,"code":1119,"language":1120,"meta":62,"style":62},[64,4747,4748,4758,4774,4796,4804,4812,4834,4846,4856,4870,4880,4894],{"__ignoreMap":62},[67,4749,4750,4752,4754,4756],{"class":69,"line":70},[67,4751,1128],{"class":1127},[67,4753,1131],{"class":84},[67,4755,1134],{"class":1127},[67,4757,1137],{"class":84},[67,4759,4760,4762,4764,4766,4768,4770,4772],{"class":69,"line":77},[67,4761,1143],{"class":1142},[67,4763,1146],{"class":1074},[67,4765,854],{"class":115},[67,4767,1151],{"class":1074},[67,4769,27],{"class":115},[67,4771,966],{"class":1074},[67,4773,1158],{"class":115},[67,4775,4776,4778,4780,4782,4784,4786,4788,4790,4792,4794],{"class":69,"line":88},[67,4777,1164],{"class":1163},[67,4779,1167],{"class":115},[67,4781,1170],{"class":1074},[67,4783,1173],{"class":115},[67,4785,1176],{"class":84},[67,4787,27],{"class":115},[67,4789,1181],{"class":1163},[67,4791,854],{"class":115},[67,4793,1187],{"class":1186},[67,4795,1190],{"class":115},[67,4797,4798,4800,4802],{"class":69,"line":95},[67,4799,1195],{"class":84},[67,4801,1167],{"class":115},[67,4803,1200],{"class":1074},[67,4805,4806,4808,4810],{"class":69,"line":101},[67,4807,1205],{"class":84},[67,4809,1167],{"class":115},[67,4811,1210],{"class":1074},[67,4813,4814,4816,4818,4820,4822,4824,4826,4828,4830,4832],{"class":69,"line":109},[67,4815,1215],{"class":84},[67,4817,116],{"class":115},[67,4819,1176],{"class":84},[67,4821,27],{"class":115},[67,4823,1225],{"class":1224},[67,4825,27],{"class":115},[67,4827,1230],{"class":1224},[67,4829,27],{"class":115},[67,4831,853],{"class":1163},[67,4833,1237],{"class":115},[67,4835,4836,4838,4840,4842,4844],{"class":69,"line":134},[67,4837,1242],{"class":1186},[67,4839,116],{"class":115},[67,4841,1247],{"class":115},[67,4843,1250],{"class":119},[67,4845,1253],{"class":115},[67,4847,4848,4850,4852,4854],{"class":69,"line":153},[67,4849,1258],{"class":115},[67,4851,1261],{"class":119},[67,4853,1247],{"class":115},[67,4855,131],{"class":115},[67,4857,4858,4860,4862,4864,4866,4868],{"class":69,"line":1268},[67,4859,1271],{"class":1186},[67,4861,116],{"class":115},[67,4863,1247],{"class":115},[67,4865,1278],{"class":119},[67,4867,1247],{"class":115},[67,4869,131],{"class":115},[67,4871,4872,4874,4876,4878],{"class":69,"line":1285},[67,4873,1288],{"class":1186},[67,4875,116],{"class":115},[67,4877,1293],{"class":1163},[67,4879,131],{"class":115},[67,4881,4882,4884,4886,4888,4890,4892],{"class":69,"line":1298},[67,4883,1301],{"class":1186},[67,4885,116],{"class":115},[67,4887,1247],{"class":115},[67,4889,1308],{"class":119},[67,4891,1247],{"class":115},[67,4893,131],{"class":115},[67,4895,4896],{"class":69,"line":1315},[67,4897,1318],{"class":115},[15,4899,1321,4900,1325],{},[64,4901,1324],{},[57,4903,4904],{"className":59,"code":1328,"language":61,"meta":62,"style":62},[64,4905,4906,4910,4916,4920,4924,4930,4946,4962],{"__ignoreMap":62},[67,4907,4908],{"class":69,"line":70},[67,4909,74],{"class":73},[67,4911,4912,4914],{"class":69,"line":77},[67,4913,81],{"class":80},[67,4915,85],{"class":84},[67,4917,4918],{"class":69,"line":88},[67,4919,92],{"emptyLinePlaceholder":91},[67,4921,4922],{"class":69,"line":95},[67,4923,98],{"class":73},[67,4925,4926,4928],{"class":69,"line":101},[67,4927,81],{"class":80},[67,4929,106],{"class":84},[67,4931,4932,4934,4936,4938,4940,4942,4944],{"class":69,"line":109},[67,4933,112],{"class":84},[67,4935,116],{"class":115},[67,4937,120],{"class":119},[67,4939,123],{"class":115},[67,4941,126],{"class":119},[67,4943,123],{"class":115},[67,4945,131],{"class":84},[67,4947,4948,4950,4952,4954,4956,4958,4960],{"class":69,"line":134},[67,4949,137],{"class":84},[67,4951,116],{"class":115},[67,4953,120],{"class":119},[67,4955,123],{"class":115},[67,4957,1278],{"class":119},[67,4959,123],{"class":115},[67,4961,131],{"class":84},[67,4963,4964,4966,4968,4970],{"class":69,"line":153},[67,4965,156],{"class":84},[67,4967,116],{"class":115},[67,4969,161],{"class":80},[67,4971,164],{"class":84},[15,4973,1399],{},[57,4975,4976],{"className":1118,"code":1402,"language":1120,"meta":62,"style":62},[64,4977,4978,5002,5014,5024,5038,5048],{"__ignoreMap":62},[67,4979,4980,4982,4984,4986,4988,4990,4992,4994,4996,4998,5000],{"class":69,"line":70},[67,4981,1215],{"class":84},[67,4983,116],{"class":115},[67,4985,1176],{"class":84},[67,4987,27],{"class":115},[67,4989,1225],{"class":1224},[67,4991,27],{"class":115},[67,4993,1230],{"class":1224},[67,4995,27],{"class":115},[67,4997,853],{"class":1163},[67,4999,854],{"class":115},[67,5001,1429],{"class":1163},[67,5003,5004,5006,5008,5010,5012],{"class":69,"line":77},[67,5005,1242],{"class":1186},[67,5007,116],{"class":115},[67,5009,1247],{"class":115},[67,5011,1250],{"class":119},[67,5013,1253],{"class":115},[67,5015,5016,5018,5020,5022],{"class":69,"line":88},[67,5017,1258],{"class":115},[67,5019,1261],{"class":119},[67,5021,1247],{"class":115},[67,5023,131],{"class":115},[67,5025,5026,5028,5030,5032,5034,5036],{"class":69,"line":95},[67,5027,1271],{"class":1186},[67,5029,116],{"class":115},[67,5031,1247],{"class":115},[67,5033,1278],{"class":119},[67,5035,1247],{"class":115},[67,5037,131],{"class":115},[67,5039,5040,5042,5044,5046],{"class":69,"line":101},[67,5041,1288],{"class":1186},[67,5043,116],{"class":115},[67,5045,1293],{"class":1163},[67,5047,131],{"class":115},[67,5049,5050],{"class":69,"line":109},[67,5051,1318],{"class":115},[221,5053,5054,854,5056,860],{"id":1482},[18,5055,1485],{},[67,5057,1489],{"className":5058},[858],[15,5060,5061,1498,5066,1501],{},[23,5062,5064],{"className":5063,"href":1495},[866],[67,5065,870],{},[64,5067,238],{},[15,5069,1504,5070,1508,5072,1512,5074,1515,5076,1518,5078,1521,5080,34,5082,426],{},[18,5071,1507],{},[18,5073,1511],{},[18,5075,1507],{},[64,5077,215],{},[18,5079,1511],{},[64,5081,202],{},[64,5083,205],{},[15,5085,1528],{},[47,5087,5088,5202],{},[50,5089,5090,5092],{},[18,5091,929],{},[47,5093,5094,5102,5110,5116,5126,5134,5152,5170,5182,5190],{},[50,5095,5096,937,5098,1546],{},[18,5097,238],{},[23,5099,5100],{"href":1543},[64,5101,1055],{},[50,5103,5104,937,5106,940,5108],{},[18,5105,936],{},[64,5107,409],{},[64,5109,943],{},[50,5111,5112,937,5114,1561],{},[18,5113,948],{},[64,5115,409],{},[50,5117,5118,937,5120,997,5122,1000,5124,1004],{},[18,5119,994],{},[64,5121,409],{},[64,5123,614],{},[64,5125,1003],{},[50,5127,5128,937,5130,997,5132,1581],{},[18,5129,1576],{},[64,5131,280],{},[64,5133,614],{},[50,5135,5136,937,5138,960,5140,979,5142,979,5144,983,5146,1601,5148,1605,5150,1609],{},[18,5137,1586],{},[64,5139,975],{},[64,5141,1591],{},[64,5143,1594],{},[64,5145,1597],{},[64,5147,1600],{},[64,5149,1604],{},[64,5151,1608],{},[50,5153,5154,937,5156,960,5158,979,5160,1623,5162,1627,5164,34,5166,1632,5168,1636],{},[18,5155,1614],{},[64,5157,975],{},[64,5159,1619],{},[64,5161,1622],{},[64,5163,1626],{},[64,5165,202],{},[64,5167,205],{},[64,5169,1635],{},[50,5171,5172,937,5174,960,5176,1649,5180,1652],{},[18,5173,1187],{},[64,5175,455],{},[23,5177,5178],{"href":1645},[64,5179,1648],{},[64,5181,614],{},[50,5183,5184,937,5186,997,5188,1024],{},[18,5185,1019],{},[64,5187,409],{},[64,5189,614],{},[50,5191,5192,937,5194,960,5196,960,5198,1675],{},[18,5193,1665],{},[64,5195,795],{},[64,5197,1670],{},[23,5199,5200],{"href":1645},[64,5201,1648],{},[50,5203,5204,5206,614],{},[18,5205,1048],{},[1050,5207],{},[15,5209,1059],{},[15,5211,1686],{},[57,5213,5214],{"className":1065,"code":1066,"language":1067,"meta":62,"style":62},[64,5215,5216,5240],{"__ignoreMap":62},[67,5217,5218,5220,5222,5224,5226,5228,5230,5232,5234,5236,5238],{"class":69,"line":70},[67,5219,1075],{"class":1074},[67,5221,1078],{"class":119},[67,5223,1081],{"class":119},[67,5225,1084],{"class":115},[67,5227,1087],{"class":119},[67,5229,123],{"class":115},[67,5231,1081],{"class":119},[67,5233,1084],{"class":115},[67,5235,1096],{"class":119},[67,5237,123],{"class":115},[67,5239,1101],{"class":84},[67,5241,5242,5244,5246],{"class":69,"line":77},[67,5243,1106],{"class":119},[67,5245,1109],{"class":119},[67,5247,1112],{"class":119},[15,5249,1725],{},[57,5251,5252],{"className":1118,"code":1728,"language":1120,"meta":62,"style":62},[64,5253,5254,5264,5284,5288,5292,5296],{"__ignoreMap":62},[67,5255,5256,5258,5260,5262],{"class":69,"line":70},[67,5257,1128],{"class":1127},[67,5259,1131],{"class":84},[67,5261,1134],{"class":1127},[67,5263,1137],{"class":84},[67,5265,5266,5268,5270,5272,5274,5276,5278,5280,5282],{"class":69,"line":77},[67,5267,1215],{"class":84},[67,5269,116],{"class":115},[67,5271,1176],{"class":84},[67,5273,27],{"class":115},[67,5275,1753],{"class":1224},[67,5277,27],{"class":115},[67,5279,1758],{"class":1163},[67,5281,854],{"class":115},[67,5283,1763],{"class":115},[67,5285,5286],{"class":69,"line":88},[67,5287,1768],{"class":119},[67,5289,5290],{"class":69,"line":95},[67,5291,1773],{"class":119},[67,5293,5294],{"class":69,"line":101},[67,5295,1778],{"class":119},[67,5297,5298,5300],{"class":69,"line":109},[67,5299,1783],{"class":115},[67,5301,1318],{"class":115},[15,5303,1788],{},[57,5305,5306],{"className":1118,"code":1791,"language":1120,"meta":62,"style":62},[64,5307,5308,5326,5332,5340,5350,5364,5378],{"__ignoreMap":62},[67,5309,5310,5312,5314,5316,5318,5320,5322,5324],{"class":69,"line":70},[67,5311,1151],{"class":84},[67,5313,27],{"class":115},[67,5315,1225],{"class":1224},[67,5317,27],{"class":115},[67,5319,1230],{"class":1224},[67,5321,27],{"class":115},[67,5323,1485],{"class":1163},[67,5325,1237],{"class":115},[67,5327,5328,5330],{"class":69,"line":77},[67,5329,1816],{"class":1163},[67,5331,131],{"class":115},[67,5333,5334,5336,5338],{"class":69,"line":88},[67,5335,1823],{"class":115},[67,5337,1250],{"class":119},[67,5339,1253],{"class":115},[67,5341,5342,5344,5346,5348],{"class":69,"line":95},[67,5343,1258],{"class":115},[67,5345,1261],{"class":119},[67,5347,1247],{"class":115},[67,5349,131],{"class":115},[67,5351,5352,5354,5356,5358,5360,5362],{"class":69,"line":101},[67,5353,1271],{"class":1186},[67,5355,116],{"class":115},[67,5357,1247],{"class":115},[67,5359,1848],{"class":119},[67,5361,1247],{"class":115},[67,5363,131],{"class":115},[67,5365,5366,5368,5370,5372,5374,5376],{"class":69,"line":109},[67,5367,1857],{"class":1186},[67,5369,116],{"class":115},[67,5371,1247],{"class":115},[67,5373,1864],{"class":119},[67,5375,1247],{"class":115},[67,5377,131],{"class":115},[67,5379,5380],{"class":69,"line":134},[67,5381,1318],{"class":115},[15,5383,1875],{},[57,5385,5386],{"className":1118,"code":1878,"language":1120,"meta":62,"style":62},[64,5387,5388,5406,5412,5420,5430,5444,5458,5472,5486],{"__ignoreMap":62},[67,5389,5390,5392,5394,5396,5398,5400,5402,5404],{"class":69,"line":70},[67,5391,1151],{"class":84},[67,5393,27],{"class":115},[67,5395,1225],{"class":1224},[67,5397,27],{"class":115},[67,5399,1230],{"class":1224},[67,5401,27],{"class":115},[67,5403,1485],{"class":1163},[67,5405,1237],{"class":115},[67,5407,5408,5410],{"class":69,"line":77},[67,5409,1816],{"class":1163},[67,5411,131],{"class":115},[67,5413,5414,5416,5418],{"class":69,"line":88},[67,5415,1823],{"class":115},[67,5417,1250],{"class":119},[67,5419,1253],{"class":115},[67,5421,5422,5424,5426,5428],{"class":69,"line":95},[67,5423,1258],{"class":115},[67,5425,1261],{"class":119},[67,5427,1247],{"class":115},[67,5429,131],{"class":115},[67,5431,5432,5434,5436,5438,5440,5442],{"class":69,"line":101},[67,5433,1271],{"class":1186},[67,5435,116],{"class":115},[67,5437,1247],{"class":115},[67,5439,1933],{"class":119},[67,5441,1247],{"class":115},[67,5443,131],{"class":115},[67,5445,5446,5448,5450,5452,5454,5456],{"class":69,"line":109},[67,5447,1857],{"class":1186},[67,5449,116],{"class":115},[67,5451,1247],{"class":115},[67,5453,1864],{"class":119},[67,5455,1247],{"class":115},[67,5457,131],{"class":115},[67,5459,5460,5462,5464,5466,5468,5470],{"class":69,"line":134},[67,5461,1956],{"class":1186},[67,5463,116],{"class":115},[67,5465,1247],{"class":115},[67,5467,1507],{"class":119},[67,5469,1247],{"class":115},[67,5471,131],{"class":115},[67,5473,5474,5476,5478,5480,5482,5484],{"class":69,"line":153},[67,5475,1971],{"class":1186},[67,5477,1974],{"class":115},[67,5479,238],{"class":1163},[67,5481,27],{"class":115},[67,5483,1981],{"class":1224},[67,5485,1984],{"class":115},[67,5487,5488],{"class":69,"line":1268},[67,5489,1318],{"class":115},[15,5491,1991,5492,27],{},[64,5493,1994],{},[1996,5495,1998],{},{"title":62,"searchDepth":77,"depth":77,"links":5497},[5498,5501,5504,5505],{"id":223,"depth":77,"text":224,"children":5499},[5500],{"id":235,"depth":88,"text":236},{"id":633,"depth":77,"text":634,"children":5502},[5503],{"id":640,"depth":88,"text":641},{"id":850,"depth":77,"text":2008},{"id":1482,"depth":77,"text":2010},{"sidebar":2014},{"title":5,"description":2011},{"loc":2015},[5510,5511],{"title":3105,"path":3106,"stem":3107,"children":-1},{"title":3112,"path":3113,"stem":3114,"children":-1},1775218445531]