|
POST
|
"SDE" hasn't been the product name for a long, long time, and in fact, ArcSDE no longer exists either. The current term of art is "enterprise geodatabase". All you need to connect to a database is the connection DLL(s) of the database vendor. If the data has been stored in native geometry, and the database release is compatible with the Esri release (there are a number of Pro versions, each with a list of supported database releases), then "migration" should not be necessary -- a "Query Layer" should see the table contents immediately. Editing features in an enterprise database requires ArcGIS Server licensing and "enablement" of the database for enterprise support. - V
... View more
03-20-2023
07:49 AM
|
2
|
0
|
2744
|
|
IDEA
|
If appending large numbers of rows to existing feature classes, make sure you drop the spatial and non-critical attribute indexes before starting the Append -- This could make an order of magnitude difference in load performance. You'll need to build those indexes afterwards. The threshold for Append vs. DropIndex/Append/BuildIndex is only 10,000 features.
... View more
03-14-2023
09:18 AM
|
0
|
0
|
2972
|
|
POST
|
Best practice is the same across RDBMS platforms, utilizing the "Least Privileges" principle: Create the table owned by a close-held login account (e.g., "HIGHWAY_DEPT") Create ROLEs for appropriate access (e.g., "HIGHWAY_BROWSE","HIGHWAY_EDITOR") GRANT appropriate role access to the the table ("GRANT select ON highway_dept.streets TO highway_browse") Create logins for each staff member Create logins for each discrete web application (e.g., "web_app1") -- NEVER use the data owner to publish data!! GRANT appropriate roles to each staff member's login ("GRANT highway_editor TO vinny_boombatz") GRANT appropriate roles to each staff member's login ("GRANT highway_browse TO web_app1") Enable EDITOR_TRACKING on each table (as the owner) I guess there needs to be one other: Sanction any user who releases a password (their own, or the owner login) outside the those with approved access Depending on the organization, data can be developed using the personal login/schema, and once deemed "ready" (by review board, common acclaim, or personal attestation), the "admin" can recreate the table and contents with the "department" login and grant appropriate access. Note: I do this myself, even if I'm the only data team member, so web services can't see anything that isn't "ready". If the table definitions are dynamic, I'll number the tables ("streets_t1") and use views to expose them ("streets_v10"). If a new column is necessary, I'll expose it, in necessary order, via "streets_v11". Major changes get a version kick ("streets_t2" + "streets_v20"). If you're using the Wild West approach now, it can take some time to adjust, but the benefits to implementing rational access only increase as the project team adds members. - V
... View more
03-03-2023
07:37 AM
|
1
|
0
|
5538
|
|
POST
|
The model used to construct UUIDs makes for low likelihood of collisions, though it's higher (but still very unlikely) if you use several different generators (e.g., Oracle and PostgreSQL and Python and Java). Unfortunately, that very uniqueness makes UUIDs an awful column to drive joins upon (they're modelled as 38-char strings which fragment the available key space). 64-bit integers are coming to Pro in the near future; these would also not be limited to "only" a 4-billion value key space (as 32-bit integers), but would have better join performance for sequential features. - V
... View more
02-28-2023
05:54 PM
|
2
|
0
|
3002
|
|
POST
|
The PostgreSQL dev team modified their release naming after 9.6, making 10.x the next major release, then 11.x, etc (currently at 15, having just released 15.2, 14.7, 13.10, 12.14 and 11.19). Esri generally supports the "current" build (as of development start), plus three back. So ArcGIS 10.6 (the oldest currently maintained release) supports PG 10, PG 9.6, PG 9.5, and PG 9.4. Each supported release has a "minimum" build (the one developed against), but minor updates are also supported (unless explicitly noted due to breaking change). For ArcGIS 10.6.1, those minimums are PG 10.3, 9.6.8, 9.5.12, and 9.4.8 (all of which are no longer supported by the PG dev team). PG 11 is not supported (at all) with ArcGIS 10.6.x. Esri support for PostgreSQL generally increases to the "most recent" release with each ArcGIS major release to the active PostgreSQL release, so ArcGIS 10.7+PG11, ArcGIS 10.8+PG12, and ArcGIS 10.9+PG13. ArcGIS 11.0 still only lists PG13, but PG14 might be added with the terminal 11.0 snapshot (and/or 11.1). PG 15 is not yet shown as supported. Note that there was a breaking change between PG 11 and PG12, where support for WITH OIDS=TRUE was removed. The ArcGIS releases which support PG12 and higher are documented as needing a pg_dump|pg_restore migration from PG11. If you're currently at PG 10.3 with ArcGIS 10.6.1, you probably need to upgrade ArcGIS to 10.7.1 or 10.8.1 (to make PG11 and/or PG12 available), then upgrade PG10 to PG11 (or PG 12), then upgrade ArcGIS again to 10.9/11, before upgrading PostgreSQL to 13.x. I wouldn't recommend changing both ArcGIS and PG releases at the same time without a full export/import migration (which is useful at times, but requires a lot of work). - V
... View more
02-24-2023
07:19 AM
|
4
|
0
|
3433
|
|
POST
|
Yes, I mean create an empty table (not yet registered), and populate it via SQL (then register it). - V
... View more
02-17-2023
10:31 AM
|
0
|
1
|
4253
|
|
POST
|
The sde schema shouldn't be involved at all in any cross-DBMS geodatabase migration, only the table owner(s) at first. I actually prefer to use SQL to define the tables *exactly* as desired, then Append from the source or even use FeatureClassToFeatureClass to generate a near clone, and populate the contents of the new table(s) via INSERT INTO newtableN(columnlist) SELECT columnlist FROM temptableN. This latter solution allows flexibility to restructure the table, or optimize physical order via an ORDER BY (or both). Of course, any versioned edits would be need to be reconciled and posted before starting transfer, and the feature classes only versioned in the target database after confirming successful transfer. I recently did this with 120 million rows across a score of tables, optimizing the partitioning and adding timestamp columns for insert and update. I used Python to transfer the data, and added a parallel table with a SHA-1 hash to fingerprint the new contents, then compared the hash with a hash of the source data to confirm successful transfer. - V
... View more
02-10-2023
01:13 PM
|
1
|
3
|
4309
|
|
POST
|
ID assignment is quirky, but that's an artifact of needing to work for both a hundred features and a hundred million. If you can deemphasize the significance of the OBJECTID in the eyes of users, it's probably worth the effort. - V
... View more
02-08-2023
08:56 AM
|
0
|
0
|
1227
|
|
POST
|
Some more details would be useful: Which RDBMS is being used for the data source? Has it been restarted since the last features were loaded? In general, this is expected behavior. Sequence-based ID assignment is not very efficient for bulk loading, so ArcGIS uses a sequence (or sequence-like structure) to allocate blocks of IDs. The size of the block is dependent on the ArcGIS release and the RDBMS. In theory, they would be equivalent, but there are use cases where the remainder of the IDs within the block are not allocated completely. And, of course, multiple simultaneous loaders will insert using different ID ranges, so it can be difficult to determine missing ranges. In practice it doesn't much matter, since the allocated IDs should only really be used by the geodatabase to maintain uniqueness, not for any other purpose. - V
... View more
02-07-2023
12:37 PM
|
0
|
0
|
1254
|
|
POST
|
More information is needed: What exact RDBMS are you using? (If it's changed recently, we need both old and new versions) What is the exact release of the geodatabase? ("10.x something" encompasses most databases produced in the past decade) What is the exact release of the GIS client used to connect to the database? Has anything changed on the system? - V
... View more
01-18-2023
07:49 AM
|
0
|
1
|
3995
|
|
POST
|
25% load on a 6-core system means that one CPU is fully engaged and another at 50%. Parsing a big text block like that isn't terribly efficient, and could easily suffer from poor performance (though 8-16 hours seems far too long). How many features, with how many vertices/feature? What exact procedure are you using to convert the data? Have you tried using Python to load the JSON to a dictionary then processing it from there? - V
... View more
01-02-2023
08:51 AM
|
0
|
1
|
2511
|
|
POST
|
Cursors are independent. It's generally best to avoid nesting them, except in the case of a insert with search inside (so you're smack-dab in the center of the use case lane). If both cursors use the same enterprise geodatabase connection, you'd probably be better off with a `da.Editor` to avoid conflicts. - V
... View more
12-21-2022
10:54 AM
|
0
|
1
|
1887
|
|
POST
|
According to https://stackoverflow.com/questions/9646353/how-to-find-sqlite-database-file-version, you'd run a query in the resulting database: select sqlite_version(); It's probably going to be the release that was stable when 3.0 development started (3.39 isn't even listed as supported in the table provided by Dan). - V
... View more
12-11-2022
10:10 AM
|
0
|
0
|
2137
|
|
POST
|
Shapefile and file geodatabase are very different formats. The only thing the FileGDB API has in common with shapefile is the geometry format used for geometry transfer (and that was done for simplicity -- FGDB doesn't use that format natively). ArcGIS is certainly capable of creating shapefiles, but this is the wrong community for researching that on Android platforms. - V
... View more
12-08-2022
11:07 AM
|
0
|
0
|
2893
|
| Title | Kudos | Posted |
|---|---|---|
| 2 | 2 weeks ago | |
| 1 | 4 weeks ago | |
| 1 | 3 weeks ago | |
| 2 | 4 weeks ago | |
| 2 | 05-22-2026 04:57 PM |