/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

export const Databases = [
  {
    title: 'PostgreSQL',
    href: 'https://www.postgresql.org/',
    imgName: 'postgresql.svg',
  },
  {
    title: 'BigQuery',
    href: 'https://cloud.google.com/bigquery/',
    imgName: 'google-big-query.svg',
  },
  {
    title: 'Snowflake',
    href: 'https://www.snowflake.com/',
    imgName: 'snowflake.svg',
  },
  {
    title: 'MySQL',
    href: 'https://www.mysql.com/',
    imgName: 'mysql.jpg',
  },
  {
    title: 'Amazon Redshift',
    href: 'https://aws.amazon.com/redshift/',
    imgName: 'amazon-redshift.jpg',
  },
  {
    title: 'Amazon Athena',
    href: 'https://aws.amazon.com/pt/athena/',
    imgName: 'amazon-athena.jpg',
  },
  {
    title: 'Apache Druid',
    href: 'https://druid.apache.org/',
    imgName: 'druid.png',
  },
  {
    title: 'Databricks',
    href: 'https://www.databricks.com',
    imgName: 'databricks.png',
  },
  {
    title: 'Google Sheets',
    href: 'https://www.google.com/sheets/about/',
    imgName: 'google-sheets.svg',
  },
  {
    title: 'CSV',
    imgName: 'csv.svg',
  },
  {
    title: 'ClickHouse',
    href: 'https://clickhouse.com/',
    imgName: 'clickhouse.png',
  },
  {
    title: 'Dremio',
    href: 'https://www.dremio.com/',
    imgName: 'dremio.png',
  },
  {
    title: 'Trino',
    href: 'https://trino.io/',
    imgName: 'trino2.jpg',
  },
  {
    title: 'Oracle',
    href: 'https://www.oracle.com/database/',
    imgName: 'oraclelogo.png',
  },
  {
    title: 'Apache Pinot',
    href: 'https://pinot.apache.org/',
    imgName: 'apache-pinot.svg',
  },
  {
    title: 'Presto',
    href: 'https://prestodb.io/',
    imgName: 'presto-og.png',
  },
  {
    title: 'IBM Db2',
    href: 'https://www.ibm.com/products/db2',
    imgName: 'ibmdb2.png',
  },
  {
    title: 'SAP Hana',
    href: 'https://www.sap.com/products/data-cloud/hana.html',
    imgName: 'sap-hana.jpg',
  },
  {
    title: 'Microsoft SqlServer',
    href: 'https://www.microsoft.com/en-us/sql-server',
    imgName: 'msql.png',
  },
  {
    title: 'Apache Doris',
    href: 'https://doris.apache.org/',
    imgName: 'doris.png',
  },
  {
    title: 'OceanBase',
    href: 'https://www.oceanbase.com/',
    imgName: 'oceanbase.svg',
  },
  {
    title: 'Couchbase',
    href: 'https://www.couchbase.com/',
    imgName: 'couchbase.svg',
  },
  {
    title: 'Denodo',
    href: 'https://www.denodo.com/',
    imgName: 'denodo.png',
  },
  {
    title: 'TDengine',
    href: 'https://tdengine.com/',
    imgName: 'tdengine.png',
  },
];
