Monitor a folder and ETL xml data to oracle - oracle

Is there any tool I can use to:
monitor a folder, when a xml file is added, it checks its name validate it(if exists in a list of names), validates it against a schema xsd, and extract data contained in xml and load it to an oracle database, if any error occurs in that process it rejects the file (write its name in a file of rejected files). I don't expect it to be able to fullfill all these features but at least help me with the monitoring and automating the process.
thanks in advance,

Yes, any ETL or data integration tool should be able to do that. I’ve implemented a project that had most of those features in the past using Pentaho Data Integration.

Related

Power Center view result

I'm starting working with Informatica Power Center, I'm new in this technology. In the past I worked with Datastage. I made a task that read data from an Oracle table and write them on a Flat File. The Job run and finish correctly (I saw on Workflow Manger).
Is there a way to view the records written on my flat file on Power Center?
Thanks
Luca
You need to access the output file. Informatica does not provide a data browser to inspect flat files or databases. You need to use a separate tool.
Try FTP or SSH connection to wherever the output file got generated.

How do I integrate Liquibase within an existing CI/CD pipeline in large organization?

We are working in a very big organization, many Databases (of many types), many schemas, many users.
Does LB has to work with some Source Control (for locking the files
when many users exist in the organization and using the same DB,
same Schema, etc)?
What is the best practice of working with LB in a very big
organization, many concurrent users?
Can SQLCL general sql format type or just xml format type?
Is there some integration with SQL Developer? I mean, suppose a user
changes an objects via sql developer, what happens then?
We get this type of question all the time, after folks get a handle of how to automate DB changes, next step is typically to add it into an existing CI/CD workflow.
Yes, Liquibase works with any source control. Most users are using
Git. But you can use Git, TFS, SVN, CVS... Once you are up and
running with Liquibase, you just need to make sure that your scripts
are in source control and you are good to go.
Besides 3rd party source control tools, Liquibase has tracking tables called "DATABASECHANGELOG" tables that keep track of the changes applied to your database when using Liquibase deployments.
Here is some more information about getting started and How Liquibase Works. https://www.liquibase.org/get_started/how-lb-works.html
Liquibase has one more table that it uses internally called "DATABASECHANGELOGLOCK" table.
This table was designed to prevent multiple Liquibase users running deployments concurrently - potentially leaving the Database in a bad state. Once the Liquibase deployment (the liquibase update command) is done, the "DATABASECHANGELOGLOCK" will allow the next Liquibase user to deploy.
You can use both SQL and XML formats (or even JSON and YAML formats).
When using SQL, you have a few options:
Best option is to use Formatted SQL changeLogs https://www.liquibase.org/documentation/sql_format.html
https://www.liquibase.org/get_started/quickstart_sql.html
You can use plain raw SQL files referenced from an XML changeLog
https://www.liquibase.org/documentation/changes/sql_file.html
When using XML, can find all the available change types (also called changeSets) available in the following page (on the left of the page)
https://www.liquibase.org/documentation/changes/
XML changeLog are more agnostic and sometimes can be used for different Database platforms when doing migrations. Also, many of the change types in XML have the ability to be rolled back automatically. The reason that this is possible with XML is because Liquibase uses it own built in functions to figure out inverse statements like "create table" to be "drop table".
For each of those changeSets you can find out if they are auto rollback eligible (at the bottom of the page). For example, create table changeSet will be Auto Rollback = yes.
https://www.liquibase.org/documentation/changes/create_table.html

Using Saiku-ui without saiku-server/mondrian?

Is it possible to use the saiku-ui component with a different jolap provider than mondrian, or with a different server backend than the saiku-server component?
I have been looking but I have not found an architecture description of how these pieces fit together and what interfaces they use to communicate. Can anyone point me towards an understanding of what the saiku-ui wants to speak with and what the saiku-server is providing?
The reason for my interest is that I have a set of data spread across hundreds of csv files that I would like to query with a pivot and charting tool. It looks like the standard way to use this with saiku would be to have an ETL process to load in to an RDBMS. However, this would not be a simple process because the files and content and the way the files relate to each other vary, so the ETL would have to do a lot of inspection of the data sources to figure it out.
Given this it seems to me that I would have three options in how to use saiku:
1) write a complex ETL to load in to a rdbms, and then use a standard jdbc driver to provide the data to modrian. A side function of the ETL would be to analyze the inputs and write the mondrian schema file describing the cubes.
2) write a jdbc driver to access the data natively. This driver would parse sql and provide access to the underlying tables. Essentially this would be a custom r/o dbms written on top of the csv files. The jdbc connection would be used by mondrian to access the data. A side function of this custom dbms would be to produce the mondrian schema file.
3) write a tool that provides a jolap interface to the native data (accepts discovery and mdx queries). This would bypass mondrian entirely and interface with the ui.
I may be a bit naive here but I consider each of the three options to be feasible. Option #1 is my least preferred because of the likelihood of the data in the rdbms becoming out of sync with the cvs files. Option #3 is most preferred because the data are simple, so not much aggregating required and I suspect that mdx will be easier to parse than sql.
So, if i could produce my own jolap data source would it be possible to hook the saiku-ui tools up to it? Where would I look to find out the interface configuration details?
Many years ago, #ronaldbouman created xmondrian - the set of tools with the olap server, and web ui tools for xmla browsing and visualusation. But that project was not updating, and has no source code.
I just updated olap server and libraries to the latest versions.
You may get it here and build:.
https://github.com/Muritiku/xmondrian-build.
You may use web package as the example. The mondrian server works with the saiku-ui.
IMHO,
I would not be as confident as your are, because it took Julian Hyde more than a decade to build Mondrian (MDX->SQL) and Calcite (SQL), fulfilling your last two proposals.
You might simply consider using Calcite, or even better Dremio. Dremio has a JDBC interface, and can query directories of CSV files in SQL. I tested Saiku over Dremio successfully (with a schema based on two separate RDBMS). Just be careful to setup tables' schema accordingly in the Mondrian v4 schema.
Best regards,
Fabrice Etanchaud
Dremio

How to convert json file to excel/sql query

I have an ETL process where supplemental/delta load is generated by source system vendor team in a json file and given to Dev team to load in table. And source system has agreed to provide the testing team with excel spreadsheet with changes/updates to data. Is there a way where Json file can be converted to Excel using some code/macro. There is no indicator or date field to track changes in the table loaded. SO inputs are excel sheet and json file. Since it is a regulated industry, using online converters is not recommended. Any ideas on how to do this, or better any other other approach for testing data would be helpful.
Is there a way where Json file can be converted to Excel using some code/macro
Maybe, but asking for such "libraries" is off topic here.
You've listed Hadoop in your tags, so you are welcome to drop JSON into HDFS, load a table schema over it in Hive (or Impala) using JSONSerde.
Then you can render the data into Excel using an ODBC connector for Hive (or Impala)

Best way to generate report using multiple databases

I am new to the reporting world. Wanted to know which is the right solution to about for generating a single report by querying for data from multiple databases. We are planning to use some reporting solution like Jasper Reports or BIRT. Generally the databases are going to be postgresql.
Please do feel free to let me know about any other better solutions as well.
Thanks.
With BIRT you can use as many data sources as you like; independently or together as joint data sets. A Joint Data Set is basically a join you create at the report level. The cool think here is that you can in effect create the join accross data bases, even instances.
All the expected sources are supported, even some not so expceted ones. Any JDBC DB, Web Servce, Flat File, POJOs (via a Scripted Data Source), XML, Native DB Driver (i.e. Oracle, SQL Server, etc...). You can even use on BIRT Report as a data source for a secondary BIRT report. That gets a bit beyond the scope of the question, but opens up a huge amount of options in terms of deployment and felxibility.
In JasperReports if you are generating the report on the server, and streaming it back to the client as PDF or HTML, then you can use any datasources you want, being it:
Multiple databases
Objects, i.e. Java Beans
Text files/XML
Web services
... etc

Resources