FAQ
About Product Support
Q: Can Canner Enterprise provide customized SLA?
Yes, Canner provides basic enterprise SLAs and advanced enterprise-level SLAs. Whether you publish on-premises or cloud versions, you can directly contact our business for details at sales@cannerdata.com.
About SQL Engine
Q: Will the system pause or suspend execution when the system limit is reached?
Canner Enterprise will pull the data required for the current SQL calculation to RAM. If the data volume of a single job exceeds the load, it will be out of memory, and an upgraded product license needs to be purchased.
Q: What should I do if the fields in the virtual database are changed?
A Schema detector in Canner Enterprise regularly tracks schema changes in the system. If there is a change, it will notify Admin of the changed items, allowing Admin to track which fields have changed and which virtual database fields are affected.
Q: What SQL syntax does Canner Enterprise use?
Canner uses standard ANSI SQL.
About data storage
Q: Can Canner Enterprise deploy in the cloud environment within the enterprise?
Whether in the cloud or on-premises, Canner Enterprise can deploy in the enterprise's private, public cloud, and on-premise servers, and all data will not flow out of the enterprise. The data will only keep within your company.
Q: Where does data store in Canner Enterprise?
- On-premises: Data in Canner Enterprise will store in SSD or Hadoop.
- Cloud: Canner Enterprise can store data in Cloud Data Lake like S3 (AWS), and Blob storage (Azure).
Q: Is there a Cache mechanism? How often does it clean up the cache?
Canner Enterprise has a Cache feature, and Cache will store as default is seven days.
About Data Integration
Q: Can Canner Enterprise directly connect to the API source?
Direct connection to the API interface is currently not supported. Still, you can save the API in the database in the data storages, such as data warehouses, databases, or data lakes, and then import it.
Q: What if I want to write back data to the database when using Canner Enterprise?
You can use Canner Enterprise as a source through ETL software and ETL tools to store data in the database or Storage.
Q: How many layers can users query in MongoDB?
In short, Querying can go very deep to infinite layers.
We have taken the following information as an example.
{
"_id":"6192badb8b480205e9484a33",
"info":{
"name": "william",
"age": "30",
"friends":[
{
"name": "ken",
"age": 30
"home": {
"city": "Taipei",
"members": [
{
"name": "Grace",
"relationship": "mother"
},
{
"name": "PY",
"relationship": "father"
}
]
}
},
{
"name": "kevin",
"age": 35
"home": {
"city":"Tainan"
}
}
]
}
}
We can query deep nested data structures. Above data, an example the following example provides the second-level data query.
select
-- second level field
info.name,
info. age,
info.friends
from nested_07260
Next, in the third-level column, if there is an array of objects, the typical situation is to flatten it into rows. You can combine syntax with functions such as join, where, or any operation such as aggregation. Below is the introduction to UNNEST syntax.
(UNNEST: https://docs.cannerdata.com/product/sql/sql_select/#unnest)
-- Disassemble the third-level field (info -> friends[] -> name)
select
info.name,
friend.name,
friend. age,
friend. home
from nested_21691
cross join unnest(info. friends) as friend(name, age, home)
We can go deeper into the fifth layer of fields. In the following example, we use CTE (with statement) and the unnest syntax to query the fields in the nested array in the fifth layer to the first layer for use.
-- Disassemble the fifth-level field (info -> friends[] -> home -> members[] -> name)
with friends as (
select
info.name as info_name,
friend.name as friend_name,
friend.age as friend_age,
friend.home as friend_home
from nested_21691
cross join unnest(info. friends) as friend(name, age, home)
)
select
info_name,
friend_name,
friend_age,
friend_home.city,
friend_home_member.name as friend_home_member_name,
friend_home_member.relationship as friend_home_member_relationship
from friends
cross join unnest(friend_home. members) as friend_home_member(name, relationship)
Theoretically, it is challenging to meet the system limitation of Canner Enterprise on the CTS in general situations so that you can access quite deep fields, but in practice, if the fields that are too nested need to use a large amount of CTS, it will cause an impact on performance.
Q: MongoDB is nested. Can users query for nested content? Can the information in the nest be queried?
Canner Enterprise can handle complex structures, such as arrays and objects. For example, the sample dataset at https://docs.atlas.mongodb.com/sample-data/sample-analytics/#sample_analytics.transactions can use the following query.
select
transactions[1].date
from transactions_96448
where any_match(transactions, t -> t.amount > 7000)
Find the row with any element whose amount > 7000
in the array-of-object field of transactions, and take out the date of the first transaction.
You can refer to the Array document: https://docs.cannerdata.com/product/sql/functions/array.