NetSuite provides SuiteAnalytics as a paid option, giving businesses the power of built-in real-time dashboards, reporting and analysis—integrated right into the ERP, CRM or ecommerce application that you use every day.
|Data Blocking||check||Column level and table level|
|Re-sync||check||Table level. If you re-sync a parent table, its child tables will resync as well.|
Follow our step-by-step NetSuite SuiteAnalytics setup guide to connect NetSuite SuiteAnalytics with your destination using Fivetran connectors.
NetSuite SuiteAnalytics' schema follows Fivetran's standard API schema rules.
Fivetran currently supports all tables in version 2020.1 as well as any custom tables present in your NetSuite account. See NetSuite's Connect Browser documentation for information on all the available tables, and the domain diagrams illustrating how tables relate to one another.
Get Fivetran-created NetSuite SuiteAnalytics analytics templates on GitHub. Our custom-built analytics templates consist of a set of SQL queries, a Looker block, and pre-built Tableau workbooks. You can use these templates as-is or customize them to meet your needs.
You can use the SQL queries as-is if you use BigQuery or Snowflake as your destination. If you use a different destination, you need to tweak the syntax slightly to get the queries to run.
The Looker Block consists of a set of view files, a model file, and a set of dashboards. Read our blog posts to learn how to use our Looker template.
The Tableau workbook consists of the SQL queries and pre-built workbooks. Read our blog posts to learn how to use our Tableau template.
When you first connect a new account, Fivetran scans every table you selected and copies every row for which we have permission to view. We import each table in full before moving onto the next table. Depending on the number and size of tables to be imported, the initial sync can take a while.
Fivetran uses one of the following strategies to update the tables that you included in your sync:
Tables which have a
last_modified_date column are updated incrementally.
System_notes and System_notes_custom
System_notes_custom are audit tables that should be immutable (unchanged). New records are synced incrementally using the
date_created column. Updates or deletes are not captured.
Tables without one of the timestamp columns must be re-imported in full to update. To maintain the speed up overall updates, the frequency with which we update these re-import tables is based on how fast we can ingest them from NetSuite. This speed is entirely dependent on NetSuite performance.
|Table Import Duration||Import Frequency|
|20 seconds or less||Every sync|
|Between 20 seconds and 60 minutes||Twice a day|
|More than 60 minutes||Once a week|
We mark the tables that take longer than 20 seconds to import as
not recommended in the dashboard and include
a message on how frequently Fivetran syncs them. They are excluded from the sync by default because they degrade performance. However, you can choose to include them.
Item_location_map is an exception. If you enable it, it will update every sync. If the
Item_location_map re-import is slow for your connection, we recommend you set up a second NetSuite connector for this single table to maintain the speed of updates to your other tables.
|Table Name||Other reason for exclusion|
|Account_activity||View on Posting_account_activity|
|Account_period_activity||View on Posting_account_activity|
|Account_period_activity_pe||View on Posting_account_activity_pe|
|Case_types||Duplicate of Casetype|
|Case_origins||Duplicate of Caseorigin|
|Deleted_records||System table that keeps track of all deleted records|
|Nlcompany||Has a single row with information about NetSuite account itself|
|Notes_system||Obsolete as of NetSuite 2017.1|
|Notes_system_custom||Obsolete as of NetSuite 2017.1|
Primary Key Hashing
Some primary key columns contain
null, but contain at least one non-null primary key column; and most destinations don't support a
null value for the primary key column.
So, Fivetran creates hash of primary key columns and stores them in the
_fivetran_id system column,
_fivetran_id column is the part of primary key for the table alongside the non-null primary key column.
Actual primary key columns won't be created as primary keys of the table in the destination.
We do not rely on the
Delete_records table to capture deletes for standard tables. Instead, we use a novel approach to incrementally capture deletes.
We logically divide the table into contiguous chunks, and import the chunks for which we detect change (using the checksums from the previous sync).
We use the chunk size in a way that it minimises the amount of data to be transferred from NetSuite.
1) The following tables have a
_fivetran_deleted column in the destination.
When rows are deleted from these tables in the account, the corresponding rows in the destination are marked as deleted.
2) Deleted records are hard deleted from the destination for the following tables.
3) Custom tables with a single primary key also receive entries in the
Deleted_records. Therefore, they also have
_fivetran_deleted column in the destination.
4) Re-imported tables also have a
_fivetran_deleted column in the destination. After each re-import, any row that no
longer exists in the source table is marked as deleted in the destination.