Skip to content

Commit

Permalink
mongodb: proposal.md: type mapping
Browse files Browse the repository at this point in the history
  • Loading branch information
ninaiad committed Nov 7, 2024
1 parent 14be5d4 commit c981238
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions app/server/datasource/mongodb/proposal.md
Original file line number Diff line number Diff line change
Expand Up @@ -284,10 +284,8 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name (
Минимум:
- `SELECT * FROM ... ` без предикатов в коллекции с гомогенными документами

#TODO пример документа + запроса к нему из YDB

- Column projection с фильтрацией колонок на уровне коннектора
- Поддержка простых типов: Int32, Long (64-bit integer), Double, String, Object, Array, BSON Date
- Поддержка простых типов: Int32, Long (64-bit integer), Double, String, Object, Array, BSON Date (на стороне YDB они все будут обернуты в Optional)
- Чтение схемы из специальной коллекции в бд MongoDB, которую создал пользователь, или дополнительного конфигурационного файла
- Извлечение схемы + type inference с помощью маленького скана коллекции с возможностью редактирования
- Пушдаун фильтров: операторов сравнения, логических операторов, `LIMIT`, `OFFSET`, column projection на уровне MongoDB
Expand All @@ -296,3 +294,19 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name (
- Пушдаун сложных предикатов, матчинг паттернов с `LIKE`, аггрегатных функций, `ORDER BY`
- Поддержка чтения схемы из систем вроде Apache Hive Metastore


#### MongoDB to YDB + Apache Arrow type mapping

|MongoDB|YDB/YQL|Arrow|
|---|---|---|
|Boolean|BOOL|UINT8|
|Int32|INT32|INT32|
|Int64|INT64|INT64|
|Double|DOUBLE|DOUBLE|
|Binary|STRING|BINARY|
|String|UTF8|STRING|
|Object|JSON|?STRING?|
|Array|?JSON/List\<T\>?|?|
|Decimal128 |?Decimal?|DECIMAL128|
|ObjectId (12 bytes)|?Int16/STRING?|?INT16/BINARY?|
|Date (int64, milliseconds since epoch)|?Interval?|DATE64|

0 comments on commit c981238

Please sign in to comment.