This version of the Ed-Fi ODS / API is no longer supported. See the Ed-Fi Technology Version Index for a link to the latest version.
How To: Use the Ed-Fi Console ODS Bulk Loader
- Ian Christopher
- Julie Remde
The Ed-Fi Console Bulk Loader (hereafter called the Loader) is a command-line tool used to initially populate an ODS database with XML data conforming to the Ed-Fi Data Standard. It is built using code generation techniques that take into account the database schema as well as the Ed-Fi XSD Schema definitions and metadata. The Loader can also be used during database initialization to create the Minimal ODS Template database by populating Ed-Fi Descriptors and education organizations into an empty ODS database. The Loader project is called EdFi.Ods.BulkLoad.Console.
Command-Line Parameters
The Loader accepts the following command-line parameters:
| Parameter | Required/ Optional | Description | Example Parameter Value |
| Database Name | Required | The name of the ODS database to receive the bulk data |
|
| Connection String | Required | The SQL connection string specifying the target database server and user credentials |
|
| Source Folder | Required | The path to a folder containing the interchange files referenced by the manifest |
|
| Manifest | Required | The path to a manifest XML file describing the interchange files to load |
|
/t | API Token | Optional | An API authorization token, used as the security context for a bulk load. When the argument is omitted, no security is applied | 7ba37ccaa1bf4f0eb50d8f748ec2ebd0 |
/r | bulkOperationId | Optional | This option is used to releases a destination database locked during a bulk operation, when a bulk operation was terminated before completion. | 2 |
| help | Used Alone | Displays help information |
|
Database
The target ODS database must already exist and be accessible using the “Connection String” (/c
) parameter provided. This database must conform to the same database schema that was used to generate the Loader application.
Manifest File
The manifest file is a simple XML document containing a list of the interchange XML files to load. Because files of the same type are loaded in parallel, it is important that files loaded by the same manifest have distinct XML IDs. Large interchange files may show errors when loading due to the highly parallelized nature of the Loader application. Usually, this is resolved by simply re-running the loader with the same settings.
A manifest file takes the following form:
<Interchanges> <Interchange> <Filename>Standards.xml</Filename> <Type>standards</Type> </Interchange> <Interchange> <Filename>EducationOrganization.xml</Filename> <Type>educationorganization</Type> </Interchange> </Interchanges>
The manifest file elements are described below:
- The
Interchanges
element must exist at the root, and may only be present one time. - The
Interchange
tag may exist more than once, and contains a singleFilename
andType
element. - The
Filename
element contains the name of the interchange file to be loaded. This may be a long filename. Note that the file must exist in the directory provided by the “Source Folder” (/f
) command line parameter at runtime. - The
Type
element contains the case-insensitive class name for the resource to be loaded.
Load Order
The load order of data is extremely important when creating a populated ODS database from a minimal one. The load order reflected in the “InterchangeOrderMetadata.xml” file (EdFi.Ods.CodeGen/App_Packages/Ed-Fi/Metadata) contains the correct load order information for the ODS database provided in the Ed-Fi repository. The following load order applies:
- Descriptors
- Standards
- EducationOrganization
- EducationOrgCalendar
- MasterSchedule
- StaffAssociation
- Student
- Parent
- AssessmentMetadata
- StudentCohort
- StudentAssessment
- StudentIntervention
- StudentTranscript
- StudentProgram
- StudentEnrollment
- StudentDiscipline
- PostSecondaryEvent
- StudentAttendance
- StudentGrade
- StudentGradebook
Ed-Fi ODS Populated Template
The populated template was generated manually with the Loader using sample XML data contained in the public Ed-Fi-Standard GitHub repository (Ed-Fi-Standard\v2.0\Samples\Sample XML).
Ed-Fi ODS Minimal Template
The minimal template is generated dynamically during the build process. The Ed-Fi descriptors, standards, and education organization sample data are loaded during the "initialize development environment" step of the build process.